#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)while(len > fbnq[i++]);
}}int fbnq_search(int *arr, int start, int end, int ele)else if(arr[mid] > ele)else
}return -1;
}//下面2個函式是第二次寫的菲波那契查詢。
int fbnq2(int n)
return i2; }}
int fbnq_search2(int *arr, int start, int end, int ele)else if(arr[mid] > ele)else
} return -1;
}/**
* 插值查詢**
* 1. 每次查詢都要付出較大代價
* 2. 排好序,呈均勻分布
*/int insert_search(int * arr, int start , int end, int ele)else if(arr[mid] > ele)else
} return -1;
} void test(const char * des, int *arr, int start, int end, int (*fun)(int*, int, int, int)){
cout<<"-----"<
二分查詢 插值查詢 斐波那契查詢
在有序表中,取中間記錄作為比較物件,將其與給定值相比較,若其等於給定值,則查詢成功 若其小於給定值,則在中間記錄的右半區繼續查詢 若其大於給定值,則在中間記錄的左半區繼續查詢。不斷重複以上過程,直到查詢成功或無匹配記錄。使用該查詢方法的前提條件在於,線性表中的資料必須有序,且必須採用順序儲存的方式。...
二分查詢,插值查詢,斐波那契查詢
二分查詢,插值查詢,斐波那契查詢 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...
有序表查詢(二分查詢,插值查詢,斐波那契查詢)
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.插值查詢 插...