在java Arrays类中的binarySearch方法是用二分法查找指定的数据并返回对应的下标,所以函数的的声明应该是 public static int binarySearch(int [] originArr,int value);我们这里只是实现一下对于数值的查找返回。
二分法算法思路:
我们需要定义一个begin下标,和一个end下标来对应着这个循环。当连两个下标之间的差不大于1时循环跳出,即中间已经没有数据但还是没查到值得情况。
实现代码:
public MyArrays{
public static int binarySearch(int [] originArr,int value){
int begin=0;
int end=originArr.length-1;
int middle=0;
while(end-begin>1){
middle=(begin+end)/2;
if(originArr[middle]==value){
return middle;//当查到数据时返回
}else if(value>originArr[middle]){
begin=middle;
}else if(value<originArr[middle]){
end=middle;
}
}
return -1;
}
}