Warum Zeiger erhöhen durch zwei, während der Suche nach loop in der verlinkten Liste, warum nicht 3,4,5?

Hatte ich einen Blick auf Frage bereits die Diskussion über Algorithmus zu finden, der in einer Schleife in einer verknüpften Liste. Ich habe gelesen, - Floyd-Zyklus-finding Algorithmus Lösung, erwähnt, dass die Menge von Orten, dass wir zwei Zeiger. Ein Zeiger( langsamer/Schildkröte ) wird um eins erhöht und der andere Zeiger( schneller/Hase ) erhöht sich um 2. Wenn Sie gleich sind, finden wir die Schleife und wenn schneller Zeiger erreicht null-es gibt keine Schleife, die in der verknüpften Liste.

Nun meine Frage ist, warum wir schneller zunehmen Zeiger 2. Warum nicht etwas anderes? Die Erhöhung von 2 notwendig ist, oder wir können Sie zu erhöhen, indem Sie X, um das Ergebnis zu erhalten. Ist es notwendig, dass finden wir eine Schleife, wenn wir die Schrittweite Zeiger schneller durch 2 oder es kann der Fall sein, wo wir brauchen, um die Schrittweite von 3 oder 5 oder x.

Leider werden Artikel wie der erste link zu (floyd-Algorithmus) ist geschrieben von Menschen, die nicht allzu besorgt über den Unterricht mit anderen zu verstehen, wie der Algorithmus. Ich kann akzeptieren, dass der Algorithmus funktioniert, aber ich habe noch zu finden, ein gutes Englisch Beschreibung von warum es funktioniert. Hoffentlich ist diese Antwort bekommen, Beschreibung.
gleiche ist der Fall mit mir, ich verstehe, es funktioniert aber nicht verstehen, wie und was ist die Logik hinter diesem.
Werfen Sie einen Blick auf Brent ' s Algorithmus, ist es sowieso besser.

InformationsquelleAutor GG. | 2011-02-26

Schreibe einen Kommentar