public class 折半查找法 {
public static void main(String[] args) {
int[] arr=new int[21];
for(int i=1;i<arr.length;i++) {
int r=(int)(Math.random()*100);
arr[i]=r;
}
arr[0]=33;
for(int i=1;i<arr.length;i++) {
for(int k=0;k<arr.length-i;k++) {
if(arr[k]>arr[k+1]) {
int tmp=arr[k];
arr[k]=arr[k+1];
arr[k+1]=tmp;
}
}
}
for(int tmp:arr) {
System.out.print(tmp+" ");
}
System.out.println();
int target=33;
int pos=-1;
int m1=0;
int m2=arr.length-1;
boolean flag=false;
while(m1<=m2) {
pos=(m1+m2)/2;
if(arr[pos]>target) {
m2=pos-1;
}
else if(arr[pos]<target) {
m1=pos+1;
}else {
flag=true;
break;
}
}
if(flag) {
System.out.println(pos+"::"+arr[pos]);
}else {
System.out.println("找不到");
}
}
}
java折半查找(二分法)
最新推荐文章于 2023-04-25 09:44:01 发布