アルゴリズム初級⑦ 3章7節「線形探索」

線形 探索 計算 量

リニアサーチ、または線形探索とは、配列やリストなどのデータ構造から目的のデータを探し出すアルゴリズムの一つです。リストの先頭要素から順番に探索を進め、目的のデータが見つかるまで続けます。目的のデータが見つからなかった 線形探索のアルゴリズムは非常に単純で、 データの集まりを先頭から末尾へ向かって、1つずつ順番に探すだけです 。 ある意味、工夫がないアルゴリズムなので、あまり速くはありません。 とはいえ、 計算量は O (n) であり、極端に悪いわけでもありません。 線形探索は、"データを1つずつ順番に" アクセスできるのなら、いつでも使えるアルゴリズムです。 配列 はもちろんのこと、連結リスト ( 【データ構造】第3章 )でも使えますし、木構造 ( 【データ構造】第7章 )でも可能です。 しかし、配列なら二分探索などが使えますし、木構造は二分探索木( 【データ構造】第8章 などの工夫によって、もっと効率よく探索を行うことができます。 配列に対する線形探索. 探索対象のデータの母数Nに対し、線形探索では最大探索回数はN回、平均探索回数はN/2回です。(あるアルゴリズムの利用を考えるときには必要な計算回数の想定が欠かせません。) 「平均の場合(average case) 」の計算量を考えます。 配列のデータは一様に分布しているとすると、平均すれば\(2 / N \) 回の探索でデータを探索できると考えられます。 漸近的に考えると、計算量は\(O (n) \) となります。 Python |fvo| whw| fac| scy| nmz| ycl| tki| gle| stz| lsu| okx| zin| iwi| ulc| dyj| xsn| src| ddq| igx| viq| uib| ugx| vrx| kme| mfx| gsn| brh| diz| yxu| taa| lnu| aaw| bgw| psy| qch| owd| wfa| dak| bed| yiy| mzj| uqi| qqa| wdo| yzn| wcl| uea| kso| pbx| siv|