は、次のリンクされたリストを検討してください。次のようにフロイドのサイクル・サーチ・アルゴリズムが特定のポインタ・インクリメント速度で失敗するのはなぜですか?
1->2->3->4->5->6->7->8->9->4->...->9->4.....
上記のリストがループを有する:ホワイトボードにリンクされたリストを描画
[4->5->6->7->8->9->4]
、私に、手動で異なるポインタ手順のためにそれを解決しようとしました、differenためのポインタを
(slow_pointer_increment, fast_pointer_increment)
- ポインタが移動方法を見ます次のようにTの場合は、次のとおり
(1,2), (2,3), (1,3)
増分の第二対 - (1,2)及び(2,3)がうまく働いたが、私はペア(1,3)を使用する場合、アルゴリズムはありませんこのペアで動作するようです。このアルゴリズムが実際に成立するためのステップをどれだけ増やす必要があるかに関するルールはありますか?
私は、より遅くて速いポインタのための様々なインクリメントステップを探しましたが、なぜこのリストのインクリメント(1,3)のために機能していないのかという単一の関連する答えが見つかりませんでした。