二分查找法(java实现)
程序员文章站
2024-03-16 09:00:58
...
二分查找法作为一种常见的查找方法,将原本是线性时间提升到了对数时间范围,大大缩短了搜索时间,但它有一个前提,就是必须在有序数据中进行查找。
二分查找很好写,却很难写对,据统计只有10%的程序员可以写出没有bug的的二分查找代码。出错原因主要集中在判定条件和边界值的选择上,很容易就会导致越界或者死循环的情况。
以下不考虑重复值:
public int binarySearch(int[] arr,int target){
int low = 0;
int high = arr.length-1;
while(low <= high){
int middle = low + (high - low)/2;
if (arr[middle] > target) {
high = middle - 1;
}else if (arr[middle] < target) {
low = middle + 1;
}else {
return middle;
}
}
return -1;
}
下一篇: 二分法(java)