検索アルゴリズムの種類

母と父は敷物の上で女の子にキスします

家族がラップトップを使用しています。

画像クレジット: アルトレンド画像/ストックバイト/ゲッティイメージズ

検索アルゴリズムは、多くのプログラムの重要な部分を形成しています。 一部の検索では、IRSデータベースでレコードを検索するなど、データベースでエントリを検索する必要があります。 他の検索アルゴリズムは、最高のチェスの動きを探すものなど、仮想空間をトロールします。 プログラマーは多数の検索タイプから選択できますが、データベースのサイズと構造に最適なアルゴリズムを選択して、ユーザーフレンドリーなエクスペリエンスを提供します。

線形探索

線形検索は、シンプルで実装に必要なコードが最小限であるため、短いリストに最適なアルゴリズムです。 線形検索アルゴリズムは、最初のリストアイテムを調べて、検索しているかどうかを確認します。検索している場合は、終了します。 そうでない場合は、次の項目を調べて、リストの各エントリを調べます。

今日のビデオ

二分探索

バイナリ検索は、レコードが数値キー順に並べられた大規模なデータベースでよく使用されるアルゴリズムです。 候補者の例には、社会保障番号でキー設定されたIRSデータベースや、運転免許証番号でキー設定されたDMVレコードが含まれます。 アルゴリズムはデータベースの中央から開始します。ターゲット番号が中央の数値より大きい場合、検索はデータベースの上半分から続行されます。 ターゲット番号が中央の番号よりも小さい場合、検索はデータベースの下半分で続行されます。 このプロセスを繰り返し、レコードが見つかるまでデータベースを毎回半分に削減します。 この検索は線形検索よりも複雑ですが、大規模なデータベースの場合、線形検索よりもはるかに高速です。

ツリー検索

ツリー検索は、データがツリー構造に適合する場合にのみ機能します。 データベースはルートから始まり、いくつかのアイテムに移動します。各アイテムはさらにいくつかのアイテムに移動し、ツリーができるまで続きます。 一例はチェスのゲームです。 現在のボード位置がルートです。 この位置からの合法的な移動は、ツリーの1つ下のステップを表し、プレーヤーが最適な位置にとどまるボード位置を見つけるまで続きます。

遺伝的アルゴリズム

遺伝的アルゴリズム検索は、人工知能の背後にある技術の1つです。 最大推力を提供するジェットエンジンの内部寸法のリストなど、一連のデータとして表される「最適なソリューション」を検索します。 検索は文字列のランダムな母集団から始まり、それぞれをテストし、最良のものを維持し、次世代を得るためにそれらを繁殖させます。 プログラムは、最適なソリューション文字列に到達するまで、このプロセスを繰り返し続けます。