Phát hiện chu trình của Floyd tìm một vòng lặp trong một dãy (như linked list) bằng cách dùng hai con trỏ di chuyển với tốc độ khác nhau. Nếu tồn tại một chu trình, con trỏ nhanh cuối cùng sẽ đuổi kịp và gặp con trỏ chậm. Nó dùng bộ nhớ phụ O(1).
Ý tưởng
Di chuyển con trỏ chậm một bước và con trỏ nhanh hai bước. Trong một chu trình, khoảng cách giữa chúng giảm đi một mỗi bước, nên chúng nhất định va vào nhau; nếu không có chu trình, con trỏ nhanh sẽ đến cuối.
