Supponiamo che i nodi del grafo siano numerati da a Teniamo un array che memorizzi, per ogni nodo, il nome della componente connessa nella quale esso si trova, ossia l'indice del minimo nodo cui è connesso. Inizializziamo tutto l'array a zero, per dire che nessun nodo è ancora classificato (se la numerazione dei nodi partisse da zero, ovviamente, per l'inizializzazione si dovrebbe usare un valore del tipo )
Si scandisce poi l'array, soffermandosi su ogni nodo per cui è uguale a zero. Per un tale nodo, si effettua una visita BFS della sua componente connessa; per ogni nodo incontrato si pone Alla fine, tutti gli indici dell'array saranno diversi da zero.
A questo punto conviene servirsi di un altro array nel quale alla fine vogliamo avere se non è rappresentante di alcuna componente; se è rappresentante di una componente di dimensione Il calcolo del contenuto di , facendo uso di è banale.
Notando che contiene numeri compresi tra 0 e , possiamo ora ordinare i nodi con un algoritmo lineare e stabile, usando come chiave del nodo proprio . Cosí facendo, tutti i nodi che non sono rappresentanti finiscono in fondo. Gli altri forniscono l'elenco secondo le specifiche desiderate.