Java二分查找
原理就不介绍了,大家都懂。说一下二分查找的前提
- 数组中的元素必须已经拍好顺序
自己写的代码:
public static int binarySearch(double[] nubmers, int number) {
int low = 0, hight = nubmers.length - 1, mid;
while (hight >= low) {
mid = (hight + low) / 2;
if (nubmers[mid] == number)
return 1;
else if (number < nubmers[mid])
hight = (low + hight) / 2 - 1;
else if (number > nubmers[mid])
low = (low + hight) / 2 + 1;
}
return 0;
}
教材上的参考答案:
public static int binarySearch(int[] list, int key){
int low = 0,hight = list.length - 1;
while (hight >= low){
int mid = (low + hight) / 2;
if (key < list[mid])
hight = mid - 1;
else if (key == list[mid])
return mid;
else
low = mid + 1;
}
return -1;
}