Floyd’s Cycle Detection Algorithm

Maryann Gitonga
2 min readSep 4, 2023

--

How it works

Floyd’s Cycle Detection Algorithm, also known as the “tortoise and hare” algorithm, is used to find cycles in linked lists or sequences. The method involves using two pointers: a faster one (the “hare”) and a slower one (the “tortoise”). The faster pointer moves two steps at a time in the sequence while the slower pointer moves one step. If the two pointers land on the same node (position), then there is a cycle: the faster pointer will catch up to the slower pointer. If the faster pointer reaches the end of the sequence (a Null position), then the sequence has no cyclic reference.

Illustration of Floyd’s Cycle Detection Algorithm: Tortoise & Hare pointers

Benefits

  1. Efficient Time Complexity: The algorithm has a time complexity of O(n), where n represents the length of the sequence. In a naive approach, one might check every pair of elements in the sequence to detect cycles. This would result in a time complexity of O(n²), where n is the sequence length. This efficiency makes it suitable for both large sequences and linked lists, allowing it to handle substantial amounts of data without a significant increase in processing time.
  2. Minimal Memory Usage: The algorithm employs only two pointers to traverse through the sequence. Unlike some other cycle detection methods, Floyd’s algorithm doesn’t require the use of additional data structures or memory that’s proportional to the size of the sequence.

Real-life application

In garbage collection algorithms, Floyd’s Cycle Detection can help identify and clean up cyclic references in memory, preventing memory leaks and improving memory utilization.

Simple Code Illustration

Where next?

--

--

Maryann Gitonga

A Software Engineer who loves trying out different tooling & engineering concepts in Back-end Engineering & DevOps. An explorer in the ML world too!