English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

如題
請說明費式搜尋法的過程,
因為不懂,所以希望大家能幫幫忙

2005-05-21 20:23:29 · 1 個解答 · 發問者 Anonymous in 電腦與網際網路 程式設計

1 個解答

費式搜尋法 ( fibonacci search )

特性
  費式搜尋觀念與二元搜尋相似,只是二元搜尋每次一分為二,而每費式搜尋是依據費式數列來
  劃分的。

定義
  Fi = Fi-1 + Fi-2 ,i >= 0 ; F0 = 0 , F1 = 1
  由上式公式可得費式數列:0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , ....

作法
  假設有 n 個記錄 ( record ) ,此數目比某一費式數目少 1 ,即 n = Fk-1。然後第一次比較的鍵值
  是 KFk-1。當
  (1) K < KFk-1 :所有找的鍵值落在 1 至 Fk-1 - 1 之間。
  (2) K = KFk-1 :表示找到了。
  (3) K >KFk-1 :所要找的鍵值落在 Fk-1 + 1 至 Fk-1 之間。
比較
  觀念上類似二分搜尋法,不是每次一分為二,而是根據某一個費氏級數來分割的。在平均的狀
  況,它的平均搜尋次數少於二分搜尋法,但最壞的狀況則多於二分搜尋法。其平均比較次數接
  近於 log 2 N 。
  時間複雜度 ( time complexity ) 是 O ( log 2 N ) 。

2005-05-21 20:27:16 · answer #1 · answered by 孤葉青楓 3 · 0 0

fedest.com, questions and answers