Java二分查詢

2021-09-24 07:45:43 字數 899 閱讀 3841

二分查詢可用於對有序的數列進行查詢

二分查詢思路:

規定要查詢的值k可能在陣列arr內下標啊i,j

計算區間啊i,j的中間點m若k若k>arr[m],將區間縮小為m,j繼續二分查詢

若k==arr[m],則找到元素位於位置m

二分查詢**

package binartsearch;

public class binarysearch

else

}return -1; }

public static void main(string args) , 1));

system.out.println(binary.binarysearch(new int , 1));

system.out.println(binary.binarysearch(new int {}, 1));

system.out.println(binary.binarysearch(new int , 1));

system.out.println(binary.binarysearch(new int , 2));

} }複製**

分析

程式**使用[i,j),半開半閉區間的好處

[a,b)+[b,c)=[a,c]

b-a=len([a,b))

[a-a)==>empty range

取中值使用到int m =i+(j-i)/2而不使用int m =(i+j)/2,是因為當i、j很大的時候會使得i+j溢位

總結

二分查詢的實現總體來說比較好理解,但要注意兩個方面,乙個邊界值,另乙個是測試用例的選取。

java二分查詢

public class binarysearch int value 11 int pos binarysearch int arrays,value system.out.println the pos is pos private static int binarysearch int int...

Java二分查詢

二分查詢的陣列是有序排列的。查詢時,會首先定位到陣列的中間位置,將中間值和查詢值比較,如果相等則返回,否則,如果當前元素值小於查詢值,則繼續在陣列的後面一半查詢,如果當前元素值大於查詢值,則在陣列的前面部分查詢,直到找到目標值或者無法再二分陣列時停止。static boolean binaryser...

java 二分查詢

二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經常變動而查詢頻繁的有序列表。首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前 後...