斐波那契查詢的 C實現

2021-08-14 20:51:48 字數 1209 閱讀 1189

小白第一篇,有錯誤的話 希望多多指教;

/*!

* @file fibonacci_search.cpp

* @date: 2018/01/21 21:36

* @author: sicaolong

* @contact: [email protected]

* @brief: 第一點:確定k在f數列中的位置;

第二點:拓展a【n】至b[f[k]-1],b為乙個新的陣列;

第三點:計算當前分隔符的下標,這個最重要

* @todo:

*/#includeusing namespace std;

void creat_fibonacci();//建立乙個fibonacci數列(無返回值);

int fibonacci_search(int *, int, int);//fibonacci查詢函式;

int main()

; int key = 59;

int index = fibonacci_search(a, sizeof(a) / sizeof(int), key);

cout << key << " 在陣列的第 " << index+1<<" 個位置上";

cout << endl;

return 0; }

void creat_fibonacci(int *f)

cout << "fibonacci數列的前" << m << "個資料如下:" << endl;

for (int i = 0; i < 20; ++i)

cout << endl;

}int fibonacci_search(int *a, int n, int key)

int *b = new int[f[k] - 1];// 第二點 拓展a【n】至b[f[k]-1],b為乙個新的陣列;

memcpy(b, a, 80);//將a的前n個資料拷貝到b的前n個資料中

for(int i = n; i < f[k] - 1;i++)//b[n]至b[f[k]-1]個資料賦值為a[n-1];

while (low<=high)//成立條件;

else

} return 0;

deleteb;//刪除動態陣列 new int b

}

希望多多學習;共同進步

斐波那契查詢

斐波那契查詢 斐波那契查詢的核心是 1 當key a mid 時,查詢成功 2 當key 3 當key a mid 時,新的查詢範圍是第mid 1個到第high個,此時範圍個數為f k 2 1個,即陣列右邊的長度,所以要在 f k 2 1 範圍內查詢。與二分查詢相比,斐波那契查詢演算法 的明顯優點在...

斐波那契查詢

與二分查詢相比,斐波那契查詢演算法的明顯優點在於它只涉及加法和減法運算,而不用除法。因為除法比加減法要占去更多的機時,因此,斐波那契查詢的平均效能要比折半查詢好。斐波那契查詢與折半查詢的時間複雜度間同為o log2 log2n 平均 情況下,斐波那契查詢優於折半查詢,但最壞情況下則差於折半查詢。斐波...

斐波那契查詢

基於二分法 此演算法依靠斐波那契數列 來跳轉比較位置 在玩數字板所以有了手寫圖 單步驟原理如下 c語言實現 include include define return fail 1 斐波那契查詢 int fibonaccisearch int src int,int src len,int sear...