數據結構和算法——查找算法

1.基本概念
「查找」又稱爲「檢索」,查找條件的域稱爲關鍵字(Key),關鍵字分爲如下兩類:
(1)主關鍵字(Primary Key):能夠惟一標識數據結構中的一個記錄;
(2)次關鍵字(Secondary Key):不能惟一區分各不一樣的記錄。算法

2.順序查找
從數據序列中的1個元素開始,從頭至尾依次逐個查找,直到找到所要的數據或搜索完整個數據序列。主要針對少許的,無規則的數據。數組

3.折半查找
又稱「二分查找」,要求是通過排序的數據序列。未排序的能夠先排序再查找。
流程:
(1)聲明三個變量:lownum,midnum(取整),highnum分別保存數組元素的開始、中間和末尾的序號;
(2)若是序號爲midnum的數組元素與X相等,則查到了數據;不然,根據比較結果判斷X在哪一個範圍內;
(3)更新變量,再次查找,如此循環,直到找到須要的數據。數據結構

、、、
int SearchFun(int a[], int n, int x){
int low=0, high=n-1,mid;
while(low<=high){
mid=(low+high)/2;
if(a[mid]==x){
return mid;
}else if(a[mid]>x){
high=mid-1;
}else{
low=mid+1;
}
}
return -1;
}
、、、排序

4.數據結構中的查找算法
(1)順序表結構:按照序號查找,按照關鍵字查找
(2)鏈表結構:經過關鍵字查找
(3)樹結構:經過遍歷結點
(4)圖結構:經過遍歷樹頂點變量

相關文章
相關標籤/搜索