public class aboutCas {
public static int iG = 0;
public static void main(String[] args) {
int[] arr ={11,22,33,44,55,66}; //二分查找的前提是,數組必須是有序的。
int index = getIndex(arr,33); //定義一個整數,接收返回來的值
System.out.println(index);
}
public static int getIndex(int[] arr,int vule){
int min = 0; //定義最小值
int max = arr.length - 1; //定義最大值
int mid = (min + max) / 2; //定義中間值
while(arr[mid] != vule){ //判斷傳入的值是否等於中間值,如果不等於,往下執行
if(arr[mid] > vule){ //判斷傳入的值是否小於中間值
max = mid -1; //如果小於,則最大值爲中間值的前面一位
}else if(arr[mid] < vule){ //如果大於中間值
min = mid +1; //最小值則改爲中間值的後面一位
}
mid = (min + max) / 2;
if(min > max){ //如果最小值大於最大值
return -1; //返回-1
}
}
return mid; //如果傳入的值等於中間值返回中間值
}
}
算法----二分查找
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.