public class BinarySearch {
public static void main(String[] args) {
int a[] = { 1, 3, 6, 8, 9, 10, 12, 18, 20, 34 };
int i = 12;
System.out.println("您所要查找数 "+i+" 的位置是: "+binarySearch(a,i));
}
//二分查找
public static int binarySearch(int a[],int m) {
if(a.length == 0) return -1;
int begin = 0; //起始位置
int end = a.length - 1; //末尾位置
int mid = (begin + end) / 2; //要查找的中间位置
while(begin <= end) {
if(a[mid] == m) { //返回找到的位置
return mid;
}else if(a[mid] > m) { //如果中间位置的值比所要找的值大,那么末尾位置指向中间位置的上一个位置
end = mid - 1;
}else{ //如果中间位置的值比所要找的值小,那么起始位置指向中间位置的下一个位置
begin = mid + 1;
}
mid = (begin + end) / 2;
}
return -1;
}
}
运行结果是:
您所要查找数 12 的位置是: 6
来源:https://www.cnblogs.com/pangxiaoshuai/p/10808239.html