日常のアルゴリズム | お宝の数を順番に探す(リニアサーチ)
リニアサーチは、データを先頭から順番に確認し、目的の値が見つかるまで探すアルゴリズムです。単純な方法ですが、検索処理の基本を理解するうえで重要です。
リニアサーチとは
リニアサーチは「線形探索」とも呼ばれます。複数の値が並んでいるときに、1つずつ順番に確認して、目的の値と一致するかを調べます。
例えば、1から5までの値が並んでいて、その中から「4」を探すとします。
最初の値が4でなければ、次の値を確認します。この作業を、見つかるまで順番に続けます。
目的の値が見つかった時点で、検索は終了します。必要であれば、見つかった値そのものだけでなく、何番目に見つかったかも結果として返せます。
同じ値が複数ある場合
リニアサーチでは、同じ値が複数ある場合、最初に見つかった値を結果にすることがよくあります。たとえば「1、4、5、4、3」から4を探す場合、2番目の4を見つけた時点で検索を終える、という考え方です。
ただし、すべての4を探したい場合は、最初の4で止めず、最後まで確認する必要があります。つまり、同じリニアサーチでも「最初の1件を探す」のか「すべて探す」のかで終了条件が変わります。
日常で考えるなら「上から順番に確認する」
名簿、一覧表、ファイル名、商品リストなどを上から順番に見ていく行動は、リニアサーチに近い考え方です。データが少ない場合や、並び順に決まりがない場合には、順番に確認する方法が分かりやすく確実です。
一方で、データが多くなると確認回数が増えます。そこで、データをあらかじめ並べ替える、検索しやすい形で保存する、といった工夫が必要になります。
リニアサーチから学べること
リニアサーチでは、「何を探すのか」「一致したらどうするのか」「見つからなかった場合にどうするのか」を整理することが大切です。この考え方は、検索機能、入力チェック、条件分岐を使う処理の基本になります。