Detecția ciclului Floyd găsește o buclă într-o secvență (cum ar fi o listă înlănțuită) folosind doi pointeri care se mișcă cu viteze diferite. Dacă există un ciclu, pointerul rapid ajunge în cele din urmă și se întâlnește cu cel lent. Folosește O(1) spațiu suplimentar.
Ideea
Mutați un pointer lent un pas și un pointer rapid doi pași. Într-un ciclu, intervalul se micșorează cu unu la fiecare pas, deci trebuie să se ciocnească; fără ciclu, pointerul rapid ajunge la capăt.
