斐波那契查詢

2021-10-11 18:47:16 字數 658 閱讀 9456

1、斐波那契數列

**分割點是指把一條線段分割為兩部分, 使其中一部分與全長之比等於另一部分與這部分之比。 取其前三位數字的近似值是 0.618。

斐波那契數列 發現斐波那契數列的兩個相鄰數的比例, 無限接近**分割值 0.618

2、斐波那契查詢

在進行**分割時:mid = left+0.618(right-left),mid 要取整數。斐波那契查詢原理與前兩種相似, 僅僅改變了中間結點(mid) 的位置,mid 不再是中間或由插值計算得到,而是位於**分割點附近, 即 mid = low + f(k-1) - 1。

3、對 f(k)-1 的理解

2、如果陣列長度為 f(k) ,而 f(k) = f(k-1) + f(k-2) ,無法找中間值。

3、當湊成 f(k-1) ,陣列左邊的長度是 f(k-1) - 1 ,陣列右邊的長度是 f(k-2) - 1 ,就拿個斐波那契數列來說: ,54 = 33 + 20 + 1 ,左邊是 f(k-1) - 1 ,右邊是 f(k-2) - 1 ,同時也空出了乙個中間值。

斐波那契查詢

斐波那契查詢 斐波那契查詢的核心是 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...