このページは、3つのアルゴリズムの違いが「見える」ように設計した実習用のリンク集です。すべてのリンクは アルゴリズム名を伏せる設定(algoMask=true)で開きます。
各リンク先では、速度を「普通」または「遅い」にして比較の様子を観察してください。比較回数やシフトの幅、メッセージの違いに注目すると理解が深まります。
アルゴリズム1 は、文字列を素直に1つずつ比べるので挙動が分かりやすい一方、比較回数は多くなりがちです。
アルゴリズム2 は、途中まで一致した情報を利用して無駄な比較を減らします。繰り返しの多いパターンに強い傾向があります。
アルゴリズム3 は、後ろ側から比較することと不一致時の大きなシフトで、文字の種類が多いときに効率が良くなりやすいです。
リンク先では、どのアルゴリズムかを「ラベル」だけで判断し、挙動から推測してみてください。
以下の問いに答えながら、実際の動きを見て確認しましょう。
Q1 実習1(先頭一致が多い)で、比較回数が最も少なかったのはどの「アルゴリズム番号」でしたか?理由も一言で。
Q2 実習2(末尾で不一致が多い)で、シフトが最も大きくなる場面が多かったのはどれでしたか?
Q3 実習3(繰り返しが強い)で「途中まで一致した情報を再利用」していると感じたのはどれでしたか?
Q4 実習4(文字の種類が多い)で、1回の不一致から大きくジャンプする動きはどれでしたか?
Q5 実習5(見つかる位置の違い)で、見つかる位置が遅いほど比較回数が増えるのはどのアルゴリズムですか?
答え合わせは、比較回数とシフト量、メッセージの理由説明を見比べると判断しやすくなります。