Estou procurando ajuda para entender o algoritmo de detecção de ciclo de Floyd. Passei pela explicação na wikipedia ( http://en.wikipedia.org/wiki/Cycle_detection#Tortoise_and_hare )
Eu posso ver como o algoritmo detecta o ciclo em O (n) tempo. No entanto, não consigo visualizar o fato de que, uma vez que os ponteiros da tartaruga e da lebre se encontram pela primeira vez, o início do ciclo pode ser determinado movendo o ponteiro da tartaruga de volta para o início e movendo a tartaruga e a lebre um passo de cada vez. O ponto em que eles se conheceram é o início do ciclo.
Alguém pode ajudar, fornecendo uma explicação, espero que diferente da da wikipedia, pois não consigo entender / visualizar?
fast
variável, ou a "lebre", precisa se mover duas vezes a velocidade da tartaruga, em vez de apenas uma à frente?