package come.agtuitu.disanzhang3;
//二分法查找
public class shuzu_erfenfachazhao {
public static void main(String[] args) {
int[] arr1 = new int[] {1,2,5,7,88,99,105,106};
int dest = 105;//需要查找的数组元素为
int head = 0;//初始的首索引
int end = arr1.length-1;//初始的末索引
int mid =(head+end)/2;
//数组的遍历
for(int i=0;i<arr1.length;i++) {
System.out.print(arr1[i] + "\t");
}
System.out.println();
if(dest==mid) {//恰好所需要的值就是改组元素的初始中点
System.out.println("所需要的元素已经找到了,它的位置是:"+mid);
}
else if(dest > mid) {//如果需要的值在初始中点的右边
for(head=mid;head<arr1.length;head++) {//利用for循环重新定义首索引的位置,不断地递增,向目标值逼近,知道找到需要查找的元素
if(arr1[head]==dest) {
System.out.println("所需要的元素在中间值的右边,它的下标是"+head);
}
}
}
else{
for(end=mid;end>head && end<arr1.length;end--) {
if(arr1[end]==dest) {
System.out.println("所需要的元素在中间值的左边边,它的下标是"+end);
}
}
}
}
}
java二分法查找示例
最新推荐文章于 2022-11-27 22:39:54 发布