前提条件:数组中的数据必须有序。
package com.java.learn;
public class Search {
public static void main(String[] args) {
int arr[]={12,14,15,24,65,77,88,568};
int index=binarySearch(arr,15);
System.out.println("该数字在数组中的小标为:"+index);
}
private static int binarySearch(int[] arr, int number) {
int min=0;
int max=arr.length-1;
while(true){
if(min>max){
return -1;
}
int mid=(min+max)/2;
if(arr[mid]>number){
max=mid-1;
} else if (arr[mid]<number) {
min=mid+1;
}else {
return mid;
}
}
}
}