插值查詢整理

2021-10-01 20:03:32 字數 850 閱讀 6516

演算法介紹

插值查詢應用案例

請對乙個有序陣列進行插值查詢 ,輸入乙個數看看該陣列是否存在此數,並且求出下標,如果沒有就提示"沒有這個數"。

**實現

public static void main(string args) ;

listlist=search(arr,0,arr.length-1,1000);

if(list.isempty())else

}/**

* 假設arr為從小到大排序的陣列

* @param arr 原始資料

* @param left 左側索引

* @param right 右側索引

* @param data 要查詢的資料

* @return 返回list

*/public static listsearch(int arr, int left,int right,int data)

list.add(mid);

mid1=mid+1;

while (mid1 <= arr.length - 1 && arr[mid1] == data)

return list;

}else

}

執行結果

插值查詢 插值搜尋

這是一種和二分比較相似的查詢的演算法,不過不同的是,對於分布比較均勻的較大的陣列,插值查詢有時能夠一次就搜尋到位.為什麼能夠這麼快呢 看網上沒有什麼關於這種演算法的描述,我就來描述一下吧.首先要知道一點,這種搜尋方式只能夠針對順序表進行,再乙個要理解順序表中的乙個特點,在順序表中查詢是否存在乙個值,...

查詢 插值查詢

插值查詢 插值查詢法的演算法思想 插值查詢法其實就是折半查詢法的加強優化版,它對mid的演算法進行了重新的規定,使此查詢法的效率更高。mid low high low key a low a high a low 插值查詢法的演算法可描述如下 int search keytype key,int n...

查詢 插值查詢

問題描述 通過插值查詢,查詢乙個數在給定陣列中是否存在,若存在找到位置索引,不存在返回 1 給定陣列中的數值都不相等 演算法實現 privat int interpolationsearch int arr,int lo,int hi,int key int mid lo hi lo key arr...