插值查詢(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...