折半查詢的原理及其java的兩種實現

2021-07-28 01:27:13 字數 418 閱讀 4394

二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好;其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。重複以上過程,直到找到滿足條件的記錄,使查詢成功,或直到子表不存在為止,此時查詢不成功。

public static int binsearch(int nums, int des) 

return -1;

} public static int search(int nums, int des, int begin, int end)

折半查詢法的兩種實現

折半查詢法的兩種實現 折半查詢法 在有序表中,把待查詢資料值與查詢範圍的中間元素值進行比較,會有三種情況出現 1 待查詢資料值與中間元素值正好相等,則放回中間元素值的索引。2 待查詢資料值比中間元素值小,則以整個查詢範圍的前半部分作為新的查詢範圍,執行 1 直到找到相等的值。3 待查詢資料值比中間元...

折半查詢的改進

本文針對折半查詢速度慢的問題,提出了一種三段查詢演算法,在折半查詢的基礎上,將搜尋區域從兩端擴充套件到三段。public class lookthree public static void main string args 將折半查詢分成三段 param x private static void...

折半查詢c 的兩種方法實現

折半查詢在資料結構演算法中是乙個比較實用的演算法。但是它是乙個只能用於查詢有順序的數,這並不影響它的使用,可以先實現乙個排序再進行查詢。折半查詢比較簡單,但是注意的點也比較多。下面我將用遞迴和非遞迴兩種方法進行實現。非遞迴 在取頭尾時有兩種選擇 左閉右閉 begin,end 左閉右開 begin,e...