C 演算法設計查詢篇之03 插值查詢

2021-08-25 02:59:59 字數 614 閱讀 1076

插值查詢(interpolation search)

該文章的最新版本已遷移至個人部落格【位元飛】,單擊鏈結 訪問。

插值查詢是二分查詢的更高效版本,它不會每次按2平分原問題規模,而是應用乙個技巧來盡快的接近目標關鍵字。

示例:

public class program ;

console.writeline(interpolationsearch(array, 80, 0, array.length - 1));

console.readkey();

}private static int interpolationsearch(int array, int key, int low, int high)

}

c#開發筆記之06-為什麼要盡可能的使用尾遞迴,編譯器會為它做優化嗎?

以上是插值查詢演算法的一種實現,以下是這個案例的輸出結果:

該文章的最新版本已遷移至個人部落格【位元飛】,單擊鏈結 訪問。

10
分析:在最壞的情況下插值查詢的時間複雜度為:

查詢演算法之插值查詢

插值查詢相對於重複二分查詢,則進行了複雜的四則運算,是二分查詢法的優化。插值查詢 param string find 要查詢的值 param array array 要查詢的陣列 return bool string function interpolationsearch find array a...

插值查詢演算法

插值查詢演算法是基於二分查詢演算法的,只是在查詢的過程中計算middle的方式有所改變,比如一組可以通過二分查詢演算法計算出的nmid索引的值,是這樣子計算的 nmid nlow nhigh 2,但是插值查詢演算法是根據比率算出的,nmid nlow key narr nlow narr nhigh...

插值查詢演算法

在均勻分布的有序數列中,會比二分查詢次數少很多 思想跟二分查詢一直,都是找到其中乙個值,小了往左找,大了往右找 區別是 也跟二分查詢差不多,就公式不同,不過因為公式複雜了一些,需要一些判斷條件來保證它的正確性 public static int binarysearch int arr,int ke...