Algoritma pencari-siklus Floyd

Dari Wikipedia Indonesia, ensiklopedia bebas berbahasa Indonesia.

Artikel ini perlu dirapikan agar memenuhi standar Wikipedia
Merapikan artikel bisa berupa membagi artikel ke dalam paragraf atau wikifikasi artikel.
Setelah dirapikan, Anda boleh menghapus pesan ini.

Algoritma pencari-siklus Floyd adalah algoritma untuk mencari siklus dalam barisan bilangan (disebut juga sekuens). Sekuens yang dimaksud bisa berupa yang tersimpan dalam struktur data ataupun dibuat sesuai kebutuhan (berupa rumus). Algoritma ini ditemukan Robert W. Floyd pada tahun 1967[1]. Nama lainnya ialah algoritma "tortoise and the hare" (istilah ini serupa dengan "kura-kura dan kancil").

Perlu diperhatikan bahwa "Algoritma Floyd" berbeda dengan "Algoritma pencari-siklus Floyd" dari penemu yang sama.


[sunting] Algoritma

Misalkan kita ingin memeriksa sebuah sekuens ai. Kita definisikan sang kura-kura sebagai:

u(i) \equiv\ a_i

dan sang kancil sebagai

c(i) \equiv\ a_{2i}

di mana i elemen bilangan asli.

Jalankan dengan i dimulai dari 1, berlanjut ke 2, dst sampai kondisi ini terjadi

u(i) = c(i)
ai = a2i

Kondisi ini akan berlaku untuk i = k0 + k.s di mana s adalah siklus yang dicari.