二分查找: * a:前提条件:已排序的数组* b:确定low与high的值,计算中间点的索引 low=0,hight=n-1 mid=(low+high)/2 c:根据中间值索引对应的元素值,与要查找的数num进行比较 如果a[mid]==num,找到 如果a[mid]>num,在中间点的左边,修改high=mid-1 如果a[mid]< num,在中间点的右边,修改low=mid+1
public class Demo022 {
public static void main(String[] args) {
int[] a={
1,
2,
3,
4,
5,
6,
9};
int high=a.length-
1;
int n=
9;
int mid=
0;
int low=
0;
boolean flag=
false;
while(low<=high){
mid=(low+high)/
2;
if(a[mid]==n){
flag=
true;
break;
}
else if(a[mid]>n){
high=mid-
1;
}
else if(a[mid]<n){
low=mid+
1;
}
}
if(flag){
System.
out.println(
"找到了");
System.
out.println(
"下标是:"+mid);
}
else {
System.
out.println(
"查不出来");
}
}
}
转载请注明原文地址: https://ju.6miu.com/read-1296851.html