public static void main(String[] args) {
int[] nums={30,40,60,70,90,100};
int idx=binarySearch(nums,60);
if(idx==-1){
System.out.println("沒有找到");
}else{
System.out.println("數字的位置是:"+idx);
}
}
public static int binarySearch(int[] nums,int num){
int low = 0;
int high = nums.length-1;
while(low<=high&&low<=nums.length-1&&high<= nums.length-1){
int mid = (high+low)/2;//計算中間位置mid = (L+H)/2
if(num==nums[mid]){//傳入的數字和中間的數字進行比較
return mid;//查找到了,返回
}else if(num<nums[mid]){
high = mid - 1;//比中間數小,在左邊查,將high的值往原mid的左邊移一位,就是以原mid的值左邊一位爲high值
}else if(num>nums[mid]){
low = mid + 1;//比中間數大,在右邊查,將low的值往原mid的右邊移一位,就是以原mid的值右邊一位爲low值
}
}
return -1;//沒有查找到,返回-1
}
二分查找法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.