package create;
public class Demo1_Array {
public static void main(String[] args){
int[] arr = {11,22,33,44,55,66,77};
System.out.println(getIndex(arr,22));
System.out.println(getIndex(arr,77));
System.out.println(getIndex(arr,88));
}
public static int getIndex(int[] arr,int value){
int min=0;
int max=arr.length-1;
int mid;
while(min<=max){
mid=(max+min)/2;
if(arr[mid]==value){
return mid;
}else if(arr[mid]<value){
min=mid+1;
}else{
max=mid-1;
}
}
return -1;
}
}
//以下代码有误
/*while(arr[mid]!=value){//中间值不等于所求值,开始循环查找
if(arr[mid]<value){
min=mid+1;
}else if(arr[mid]>value){
min=mid-1;
}
mid=(min+max)/2;
if(min>max){
return -1;
}
}//while结束
return mid;
*/
Java学习笔记30:二分查找算法代码
最新推荐文章于 2024-07-16 11:17:24 发布