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