lsearch.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | /*
リニアサーチ (Linear Search):
リストの先頭から終端に向かって目的の要素を探し出す
アルゴリズムである.
*/
/*
アルゴリズム分析:
1. リストの先頭から要素を取り出す
2. 取り出した要素の値と探したい要素の値を比較する
・一致すれば探索終了
・一致しなければ STEP 1 へ戻り次の要素を取り出す
*/
/*
単純で分かりやすいアルゴリズムだが, データを一つ一つ順に
照合するのでリストのサイズが大きいと効率が悪い
*/
#include <stdio.h>
int main(void){
int array[10] = {9, 7, 8, 20, 21, 5, 13, 24, 12, 11};
int value;
int i;
printf("Find value?\n");
scanf("%d", &value);
for(i = 0; i < 10; i++){
if(array[i] == value){
printf("Found at index %d\n", i);
return 0;
}
}
printf("Not found\n");
return 0;
}
|
lsearch.c の実行結果は:
[cactus:~/code_c/ad]% ./lsearch
Find value?
10
Not found
[cactus:~/code_c/ad]% ./lsearch
Find value?
9
Found at index 0
[cactus:~/code_c/ad]% ./lsearch
Find value?
11
Found at index 9