代码实现:
public static void main(String[] args) {
int[] arr={1,5,6,7,8,9,70};
int a=10;
int result= binarySearch(arr,a);
System.out.println(result);
}
//传统查找方式
public static int search(int[] arr,int a){
for(int i=0;i
二分查找
1 建立在排序的基础上
2 用于查找固定有序的数据
实现原理:每次和中间值比较
1 确定起始下标和结束下标
2 确定中间值和目标数据开始比较
3 如果相等,返回中间下标
4 如果大于目标数,起始值=中间值+1,结束值不变
5 如果小于目标数,起始值不变,结束值=中间值-1
6 当起始值大于结束值时,说明不存在
//二分查找
public static int binarySearch(int[] arr,int a){
// 1 确定起始下标和结束下标
int count=0;
int start=0;
int end=arr.length-1;
// 2 确定中间值和目标数据开始比较
int mid=(start+end)/2;
while(start<=end){
count++;
// 3 如果相等,返回中间下标
if(a==arr[mid]){
System.out.println("二分查找:"+count);
return mid;
}
// 5 如果小于目标数,起始值不变,结束值=中间值-1
if(aarr[mid]){
start=mid+1;
mid=(start+end)/2;
}
}
// 6 当起始值大于结束值时,说明不存在
System.out.println(count);
return -1;
}



