費氏查詢演算法

2021-07-09 02:22:22 字數 758 閱讀 7907

費氏查詢演算法,利用斐波那契數列的思想,逐步修改要查詢的區間,

根據資料的範圍依據費氏樹的結構往下查詢資料,直到找到資料或達到費氏樹的底端位置。

相對於折半查詢演算法來說,建立斐波那契數列不需要用除法。效率要高。

在初始階段搜尋相對較快,但是在後半程收斂比較慢。

在考慮是否可以將該方法和其他搜尋演算法融合一下,得到更快的搜尋演算法。

#include #include int fib(int n)

/*費氏查詢法*/

int fib_search(int *list, int n, int key)

else if (key > list[root-1])

else if (key == list[root-1])

} while(dist2 >= 0);

return 0;

}int main(int argc, char **argv)

; int len = sizeof(list)/sizeof(list[0]);

int fib_index = 1;

while(fib(fib_index) <= len)

fib_index++;

if (fib_search(list, fib_index, key))

printf("found\n");

else

printf("donot found\n");

return 0;

}

Fibonacci費氏數列

param args fibonacci為1200年代的歐洲數學家,在他的著作中曾經提到 若有乙隻免子每個月生乙隻小免子,乙個月後小免子也開始生產。起初只有乙隻免子,乙個月後就有兩隻免子,二個月後有三隻免子,三個月後有五隻免子 小免子投入生產 如果不太理解這個例子的話,舉個圖就知道了,注意新生的小免...

2 費氏數列

fibonacci為1200年代的歐洲數學家,在他的著作中曾經提到 若有乙隻免子每個月生乙隻小免子,乙個月後小免子也開始生產。起初只有乙隻免子,乙個月後就有兩隻免子,二個月後有三隻免子,三個月後有五隻免子 小免子投入生產 如果不太理解這個例子的話,舉個圖就知道了,注意新生的小免子需乙個月成長期才會投...

費氏搜尋法

說明 二分搜尋法每次搜尋時,都會將搜尋區間分為一半,所以其搜尋時間為 o log 2 n log 2 表示 以2為底的log 值,這邊要介紹的費氏搜尋,其利用費氏數列作為間隔來搜尋下乙個數,所以區 間收斂的速度更快,搜尋時間為 o logn 解法 費氏搜尋使用費氏數列來決定下乙個數的搜尋位置,所以必...