Given a graph, the critical node detection problem can be broadly defined as identifying the minimum subset of nodes such that, if these nodes were removed, some metric of graph connectivity is minimised. In this paper, two variants of the critical node detection problem are addressed. Firstly, the basic critical node detection problem where, given the maximum number of nodes that can be removed, the objective is to minimise the total number of connected nodes in the graph. Secondly, the cardinality constrained critical node detection problem where, given the maximum allowed connected graph component size, the objective is to minimise the number of nodes required to be removed to achieve this. Extensive computational experiments, using a range of sparse real-world graphs, and a comparison with previous exact results demonstrate the effectiveness of the proposed algorithms.