探索アルゴリズム

探索(たんさく) アルゴリズムの学習(がくしゅう) ノート。

配列探索アルゴリズム

  • これらのアルゴリズムは(おも) にソート() みまたは() ソートの配列(はいれつ) での検索(けんさく)使用(しよう) される
  • どのアルゴリズムを選択(せんたく) するかは、データがソートされているか、データセットのサイズ、検索頻度(けんさくひんど)依存(いぞん) する
アルゴリズム利点(りてん)欠点(けってん)使用場面(しようばめん)
線形探索(せんけいたんさく)実装(じっそう)簡単(かんたん)() ソートデータに対応(たいおう)大規模(だいきぼ) データセットでは非効率(ひこうりつ)小規模(しょうきぼ) データセット
二分探索(にぶんたんさく)高効率(こうこうりつ)データが事前(じぜん) にソートされている必要(ひつよう) あり大規模(だいきぼ) ソート() みデータ
補間探索(ほかんたんさく)均一分布(きんいつぶんぷ) データでは非常(ひじょう)高速(こうそく)非均一分布(ひきんいつぶんぷ) データでは非効率(ひこうりつ)大規模(だいきぼ) 均一分布(きんいつぶんぷ) 数値配列(すうちはいれつ)

Binary Search

二分探索(にぶんたんさく) - ソート()配列(はいれつ)効率的(こうりつてき)目標値(もくひょうち)検索(けんさく)

Binary Search

  • Time Complexity
    • Best: O(1) O(1)
    • Average: O(logn) O(\log n)
    • Worst: O(logn) O(\log n)
  • Space Complexity:
    • 反復(はんぷく) : O(1) O(1)
    • 再帰(さいき) : O(logn) O(\log n)

Interpolation Search

補間探索(ほかんたんさく) - 均一分布(きんいつぶんぷ) データに最適化(さいてきか) された探索(たんさく) アルゴリズム

Interpolation Search

  • Time Complexity
    • Best: O(1) O(1)
    • Average (均一分布(きんいつぶんぷ) データ): O(log(logn)) O(\log(\log n))
    • Worst: O(n) O(n)
  • Space Complexity: O(1) O(1)

グラフ探索アルゴリズム

  • これらのアルゴリズムはグラフ構造(ぐらふこうぞう) (ソーシャルネットワーク、地図(ちず) など)での経路(けいろ)特定(とくてい) ノードの検索(けんさく)使用(しよう) される
アルゴリズム利点(りてん)欠点(けってん)使用場面(しようばめん)
(ふか)優先探索(ゆうせんたんさく) (DFS)メモリ効率(こうりつ)()(ふか)分岐(ぶんき)(おちい)可能性(かのうせい)迷路解決(めいろかいけつ) 、トポロジカルソート
幅優先探索(はばゆうせんたんさく) (BFS)最短経路(さいたんけいろ)発見(はっけん)メモリ消費(しょうひ)(おお) きい最短経路問題(さいたんけいろもんだい)
Dijkstra(ほう)単一始点最短経路(たんいつしてんさいたんけいろ)発見(はっけん)()(おも) みには非対応(ひたいおう)ナビゲーション、ネットワークルーティング
A*探索(たんさく)最良優先探索(さいりょうゆうせんたんさく) とヒューリスティックの()() わせヒューリスティック関数(かんすう)選択(せんたく)効率(こうりつ)影響(えいきょう)経路計画(けいろけいかく) 、ゲームAI

文字列探索アルゴリズム

  • (おも) にテキスト処理(しょり) 、パターンマッチングに使用(しよう) される
アルゴリズム利点(りてん)欠点(けってん)
KMP(ほう)効率的(こうりつてき)文字列(もじれつ) マッチング実装(じっそう)複雑(ふくざつ)
Rabin-Karp(ほう)複数(ふくすう) パターンを同時(どうじ)検索可能(けんさくかのう)ハッシュ関数(かんすう)選択(せんたく)効率(こうりつ)影響(えいきょう)
Boyer-Moore(ほう)実用上(じつようじょう) (ほか)文字列(もじれつ) アルゴリズムより優秀(ゆうしゅう)前処理(まえしょり)複雑(ふくざつ)

確率的探索アルゴリズム

  • これらのアルゴリズムは通常(つうじょう)複雑(ふくざつ)最適化問題(さいてきかもんだい)大規模(だいきぼ)探索空間(たんさくくうかん)使用(しよう) される
アルゴリズム利点(りてん)欠点(けってん)
モンテカルロ木探索(きたんさく) (MCTS)(おお) きな状態空間(じょうたいくうかん)適用可能(てきようかのう)()結果(けっか)() るには(おお) くのシミュレーションが必要(ひつよう)
() きなまし(ほう)局所最適解(きょくしょさいてきかい) から脱出可能(だっしゅつかのう)大域最適解(たいいきさいてきかい)発見(はっけん)保証(ほしょう) されない
遺伝的(いでんてき) アルゴリズム複雑(ふくざつ)最適化問題(さいてきかもんだい)処理可能(しょりかのう)パラメータ調整(ちょうせい)複雑(ふくざつ)

特殊探索アルゴリズム

  • ハッシュ探索(たんさく) とブルームフィルタは大規模(だいきぼ) データセットの高速検索(こうそくけんさく)使用(しよう) される
アルゴリズム利点(りてん)欠点(けってん)
ハッシュ探索(たんさく)ハッシュテーブルで定数時間(ていすうじかん)(ちか)検索(けんさく)追加(ついか) ストレージが必要(ひつよう) 、ハッシュ衝突(しょうとつ)可能性(かのうせい)
ブルームフィルタ空間効率(くうかんこうりつ)(たか) い、検索(けんさく)高速(こうそく)偽陽性(ぎようせい)可能性(かのうせい) あり、削除非対応(さくじょひたいおう)