  An identifying code in a graph is a set of vertices which intersects all the
symmetric differences between pairs of neighbourhoods of vertices. Not all
graphs have identifying codes; those that do are referred to as twin-free. In
this paper, we design an algorithm that finds an identifying code in a
twin-free graph on n vertices in O(n^3) binary operations, and returns a
failure if the graph is not twin-free. We also determine an alternative for
sparse graphs with a running time of O(n^2d log n) binary operations, where d
is the maximum degree. We also prove that these algorithms can return any
identifying code with minimum cardinality, provided the vertices are correctly
sorted.
