二分查找:
二分查找适合于有序数组。
假设目标数是target
代码如下所示:
int[] arr = new int[]{1,23,45,67,98}
int left = 0;
int rigth = arr.length -1;
while(left <= right){
int middle = (left + end )/2;
if(target == arr[middle]){
System.out.println("找到了");
break;
}else if(target > arr[middle]){
left = middle +1;
}else{
rigth = middle -1;
}
}
这里有一个注意事项,如果数组长度过长的话
int middle = (left + end )/2;
上面这种可能会导致数组下标越界的错误,这时我们需要换一种写法:
int middle = left + (end - left )/2;