» www.Giftbox.Az - Bir birindən gözəl hədiyyə satışı
ウィキペディアランダム
毎日カテゴリ
共有: WhatsappFacebookTwitterVK

線型探索

探索 > 線型探索

線型探索(せんけいたんさく、: linear search, sequential search)は、検索アルゴリズムの一つ。 リスト配列に入ったデータに対する検索を行うにあたって、 先頭から順に比較を行い、それが見つかれば終了する。

個のデータから個のデータを検索する場合、時間計算量は 、空間計算量は である。

アルゴリズムの流れ

下のような7個のデータを持つリストがある。このときに今要素1がどこにあるか、検索したい。

10 7 12 6 1 4 3

線形探索では、

  • 最初の要素である10を見る。
  • 10は1ではないので、次の要素7を見る。
  • 7は1ではないので、次の要素12を見る。
  • 12は1ではないので、次の要素6を見る。
  • 6は1ではないので、次の要素1を見る。1を見つけることができた。

最悪のケースは、このリストの場合、要素3を見つけるときで、7個のデータ全てを見ないと、見つけることができない。

プログラム例

Common Lisp

(defun linear-search (list x)  (dolist (e list)  (when (equal e x)  (return-from linear-search T))) ;found  NIL) ;not found 

F#

// For basic sequence: let find value (vs: seq<_>) =  use e = vs.GetEnumerator()  let rec ifind index =  if e.MoveNext() then  if e.Current = value then Some index else ifind (index + 1)  else None  ifind 0 // For list: let find2 value vl =  let rec ifind2 index vl =  if List.isEmpty vl then None  else if (List.head vl) = value then Some index  else ifind2 (index + 1) (List.tail vl)  ifind2 0 vl 

C

/* for integer array: */ int find(  int array[],  int array_size,  int value) {  int i;  for (i = 0; i < array_size; ++i)  {  if (array[i] == value) { return i; }  }  return -1; } 

関連項目

ウィキペディア、ウィキ、本、library、論文、読んだ、ダウンロード、自由、無料ダウンロード、mp3、video、mp4、3gp、 jpg、jpeg、gif、png、画像、音楽、歌、映画、本、ゲーム、ゲーム。