試想一下,要在散落的一大堆書中找你需要的一本書有多麻煩,如果把書擺列整齊,比如豎起來放到書架上,這樣從左往右或從右往左)依次查找你所需要的書,會變得很容易。
把散落的一堆書可理解為一個集合,將它們擺列整齊放在書架上,就相當於構建了一個順序查找表,查找起來會容易一些。如果在擺列整齊的基礎上,將書名字按字母排列順序依次擺好,就構成了有序查找表。
順序表查找:順序查找。
有序表查找:折半查找,插值查找,斐波那契查找。
現在重點講述順序查找。順序查找又叫線性查找,是最基本的查找技術,它的查找過程:從表中第一個或最後一個)記錄開始,諸葛進行記錄的關鍵字和給定值比較,若某個記錄的關鍵字和給定值相等,則查找成功,找到所查的記錄;如果知道最後一個或第一個)記錄,其關鍵字和給定值比較都不等時,則表中沒有所查的記錄,查找不成功。
#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