この記事では、次の検索アルゴリズムについて説明します。 線形探索 バイナリ検索 補間検索 それぞれを詳しく見てみましょう。 1. 線形探索データを見つけるための最も単純な戦略は線形検索です。線形検索では、各要素を走査してターゲットを見つけ、各データ ポイントにアクセスして一致を見つけ、一致が見つかったときに結果を返し、アルゴリズムはループを終了します。一致が見つからない場合、アルゴリズムはデータの最後まで検索を続けます。線形検索の明らかな欠点は、本質的に網羅的な検索であるため、非常に遅いことです。その利点は、他のアルゴリズムのようにデータをソートする必要がないことです。 線形探索のコードを見てみましょう。
ここで、このコードの出力を見てみましょう (図 3-15 を参照)。
▲図3-15 データが正常に見つかった場合、LinearSearch 関数を実行すると True が返されることに注意してください。
2. 二分探索バイナリ検索アルゴリズムの前提条件は、データが順序どおりになっていることです。アルゴリズムは、探している値が見つかるまで、現在のリストを繰り返し 2 つに分割し、最小インデックスと最大インデックスを追跡します。
出力結果を図3-16に示します。
▲図3-16 BinarySearch 関数を呼び出すと、入力リスト内に値が見つかった場合に True が返されることに注意してください。
3. 補間検索バイナリ検索の基本的なロジックは、データの中央部分に焦点を当てることです。補間は、ターゲット値を使用してソートされた配列内の要素のおおよその位置を推定する、より複雑な検索です。 例を使って理解してみましょう。英語の辞書で river などの単語を検索する場合、辞書の真ん中までめくって検索を開始するのではなく、この情報を使用して補間し、文字 r で始まる単語の検索を開始します。より一般的な補間ファインダーは次のようになります。
出力結果を図3-17に示します。
▲図3-17 IntPolsearch 関数を使用する前に、まずソート アルゴリズムを使用して配列をソートする必要があることに注意してください。
著者について: Imran Ahmad は、Google 認定インストラクターであり、長年にわたり Google と Learning Tree で Python、機械学習、アルゴリズム、ビッグデータ、ディープラーニングを専門に教えています。彼は博士号取得を目指しながら、クラウド コンピューティング環境でのリソース割り当てを最適化するための線形計画法に基づいた ATSRA という新しいアルゴリズムを提案しました。彼はほぼ 4 年間、カナダ連邦政府の高度分析研究所で注目を集める機械学習プロジェクトに取り組んできました。 この記事は「すべてのプログラマが知っておくべき 40 のアルゴリズム」から抜粋したもので、出版社の許可を得て公開されています。 |
>>: 完全な自動運転まであとどれくらいでしょうか?答えはセンサー技術の発展にある
多くの自然言語処理には機械学習が関係しているため、機械学習の基本的なツールとテクニックを理解しておく...
人工知能の中で最も議論の多い技術分野といえば、顔認識技術でしょう。 1 つ目は、顔認識の収集方法であ...
国内の科学技術イノベーション主体はいずれも「中核技術を自主的に掌握し、外国の独占を打ち破る」という目...
C# 暗号化アルゴリズムMD5 は Message-Digest Algorithm 5 の略で、1...
ビデオゲーム、医療におけるモノのインターネット、スマートシティなどでは、すでに仮想現実がさらに多く見...
まとめこの記事では、Stack データ構造の基本的な操作とそのいくつかの応用について紹介します。括弧...
DALL·E 2、この AI は実際に独自の秘密言語を作成しました。たとえば、次の 2 つの非常に...
チューリング賞受賞者のヤン・ルカン氏は、公開インタビューで、現在のAIモデルの学習効率は人間の赤ちゃ...
1月4日、研究者のデイビッド・クルーズマ氏はナショナルジオグラフィックとブルームバーグ・フィランソロ...
ニューロテクノロジーは人間の神経系の原理に基づいており、人間の脳の極めて複雑なモデル構造を研究するこ...
[[154315]]決定木分類アルゴリズム決定木誘導は古典的な分類アルゴリズムです。これは、トップダ...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
英国の製造業はデジタル変革から大きな恩恵を受けるでしょう。インダストリー 4.0 に向けて進むにつれ...
グーグルのディープマインドは1月5日、3つの新たな開発を発表した。その1つは、AIロボットが人間に危...