試想一下,要在散落的一大堆書中找你需要的一本書有多麻煩,如果把書擺列整齊,比如豎起來放到書架上,這樣從左往右或從右往左)依次查找你所需要的書,會變得很容易。
把散落的一堆書可理解為一個集合,將它們擺列整齊放在書架上,就相當於構建了一個順序查找表,查找起來會容易一些。如果在擺列整齊的基礎上,將書名字按字母排列順序依次擺好,就構成了有序查找表。
順序表查找:順序查找。
有序表查找:折半查找,插值查找,斐波那契查找。
現在重點講述順序查找。順序查找又叫線性查找,是最基本的查找技術,它的查找過程:從表中第一個或最後一個)記錄開始,諸葛進行記錄的關鍵字和給定值比較,若某個記錄的關鍵字和給定值相等,則查找成功,找到所查的記錄;如果知道最後一個或第一個)記錄,其關鍵字和給定值比較都不等時,則表中沒有所查的記錄,查找不成功。
#include <stdio.h>
#include <stdlib.h>
int arr[10] = {9, 5, 8, 3, 2, 7, 4, 0, 6, 1};
int SequentialSearch(int *a, int n, int key)
{
int i;
for(i=0; i<n; i++)
{
if(a[i]==key)
return i;
}
return -1;
}
int main()
{
int addr;
int key = 2;
addr = SequentialSearch(arr, 10, key);
if(addr == -1)
printf("查找失敗\n");
else
{
printf("查找成功\n");
printf("所在位置為:%d\n",addr);
}
return 0;
}
本文出自 “李海川” 博客,請務必保留此出處http://lihaichuan.blog.51cto.com/498079/1282314