1.二分查詢
//二分查詢非遞迴
int binary_search1(int *num, int len,int target)
return -1;
}//二分查詢遞迴
int binary_search2(int *num, int low, int hight, int target)
return -1;
}
2.插值查詢
//插值查詢
int interpolationsearch(int *num,int len,int key)
return -1;
}
3.斐波那契查詢
//斐波那契查詢
int fibonacisearch(int *num, int len, int key)
else if(key>num[mid])
else{
if(mid
二分查詢是進行加法與除法運算
mid=(low+hight)/2;
插值查詢進行複雜的四則運算
mid=low+(high-low)*(key-num[low])/(num[high]-num[low]);
斐波那契
mid=low+fibonaci(k-1)-1;
二分查詢 插值查詢 斐波那契查詢
在有序表中,取中間記錄作為比較物件,將其與給定值相比較,若其等於給定值,則查詢成功 若其小於給定值,則在中間記錄的右半區繼續查詢 若其大於給定值,則在中間記錄的左半區繼續查詢。不斷重複以上過程,直到查詢成功或無匹配記錄。使用該查詢方法的前提條件在於,線性表中的資料必須有序,且必須採用順序儲存的方式。...
二分查詢,插值查詢,斐波那契查詢
二分查詢,插值查詢,斐波那契查詢 1.二分查詢 偽 while left else if key arr left index 2 then right left right 2 else left left right 2 end 示例 public int midsearch listarr,i...
順序查詢 二分查詢,斐波那契查詢,插值查詢
include include include using namespace std void printerr else if arr mid ele else return 1 void print int i else if len 2 else if len 3 else if len 3...