順序查詢 二分查詢,斐波那契查詢,插值查詢

2021-06-11 20:01:47 字數 831 閱讀 2138

#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.插值查詢 插...