小白第一篇,有錯誤的話 希望多多指教;
/*!
* @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...