費氏查詢演算法,利用斐波那契數列的思想,逐步修改要查詢的區間,
根據資料的範圍依據費氏樹的結構往下查詢資料,直到找到資料或達到費氏樹的底端位置。
相對於折半查詢演算法來說,建立斐波那契數列不需要用除法。效率要高。
在初始階段搜尋相對較快,但是在後半程收斂比較慢。
在考慮是否可以將該方法和其他搜尋演算法融合一下,得到更快的搜尋演算法。
#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 解法 費氏搜尋使用費氏數列來決定下乙個數的搜尋位置,所以必...