コース: プログラミングの基礎:アルゴリズム
今すぐコースを受講しましょう
今すぐ登録して、24,900件以上登録されている、業界エキスパート指導のコースを受講しましょう。
線形探索法で探索する
線形探索法は最も単純な 探索のアルゴリズムです。 探索の基本ですから、 しっかり理解しましょう。 線形探索法は、 リニアサーチとも呼ばれ、 データの先頭から順に 目的の要素を探していく 最も単純な探索方法です。 線形探索法には、 しらみつぶし法と 番兵法があります。 しらみつぶし法と呼ばれる方法は、 文字通りデータを先頭から ひとつひとつしらみつぶしに調べ、 データがなくなるまで 探索を続けます。 探索条件は、 探索する値が見つかった場合と、 探索対象のデータ範囲を超えた場合の 2つです。 探索対象のデータ範囲を超えた場合には、 データ中に探索する値と 同じものが存在しなかったわけですから 探索不成功になります。 単純な探索方法ですが、 要素数が大量になると、 大変に時間がかかります。 例えば配列要素の中から 18 を探索したい場合には、 先頭の要素から1件ずつ 18 であるかどうかを照合します。 このように探索したいデータがあれば、 探索成功になります。 一方配列要素の中から 15 を探索したい場合には、 先頭の要素から1件ずつ照合しても 15 は見つからないので、 探索不成功になります。 ソースコードを確認してみましょう。 これは C 言語で記述した しらみつぶし法のコードです。 配列の宣言の仕方など違いはありますが、 他の C 言語ベースの プログラミング言語でも、 同じように記述できます。 ここでは要素数7の配列から キーナンバーの 18 を探索します。 カウンター変数 i は 配列の添字を示します。 これは0から最大添字6以下の間 インクリメントします。 さらに配列要素が キーナンバーと一致しないという 検索条件も必要になります。 反対に言えば、配列要素が キーナンバーと一致すれば ループを終了します。 繰り返しを終了してから カウンター変数 i がいくつであるかを 確認すれば、配列中に キーナンバーと同じ要素が 含まれていたかどうかがわかります。 つまり i が6以下ならば 配列中にキーナンバーと同じ要素が 含まれていて、 ループを終了したことになります。 けれども、そうでなければ i が7になってから ループを終了したことになり、 配列中にキーナンバーと同じ要素が 含まれていなかったことになります。 キーナンバーは 18 ですから i…
エクササイズファイルを使って実践してみましょう。
インストラクターがコースで使用しているファイルはダウンロードできます。見て、聞いて、練習することで、理解度を深めることができます。