線形探索法(リニアサーチ)
http://www.geocities.jp/ky_webid/algorithm/006.html
ソートの話は一旦置いておいて今度は探索アルゴリズム。
これは、データ列の先頭から末尾に向かって1つずつ探索していくアルゴリズムです。運良く、先頭近くで見つかれば非常に高速だし、運悪く、末尾近くまで見つからなければ非常に低速になってしまいます。また、そもそもデータ列中に存在していなければ、要素数の分だけ探索を続けなければならなくなります。
なるほど。って、ん?んん?大層な名前が付いてますが、これって単純にループして比較するだけ??
ともかくやってみます。
#include <stdio.h> #define ARRAY_NUM(a) (sizeof(a)/sizeof(a[0])) int linear_search (int *data,int array_size,int target) { int i; for(i=0;i<array_size;i++) { if ( data[i] == target ) { return 1; } } return 0; } int main (void) { int num[] = { 3,9,11,50,6,34,20,98,6,1 }; printf("%d\n",linear_search(num,ARRAY_NUM(num),6)); printf("%d\n",linear_search(num,ARRAY_NUM(num),10)); return 0; }
$ main 1 0
こうゆうこと?