public class test {
public static void main(String[] args) {
int[] write = new int[10];
//随机生成10个数放进数组里
for(int i=0; i<10; i++) {
write[i] = (int) (Math.random()*25);
}
//排列
Arrays.sort(write);
//输入数组
for(int i=0; i<10; i++) {
System.out.println(write[i]);
}
输出数组是否有“4”这个数字,有则输出位置,无则输出-1
System.out.println("**********"+rank(4,write));
}
public static int rank(int key, int[] a) {
//表示数组的头和尾。
int lo = 0;
int hi = a.length-1;
//数字必定在lo和hi之间,不断循环,直到key等于a[mid],就返回mid
while(lo <= hi) {
int mid = lo+(hi-lo)/2;
if(key < a[mid])
hi = mid-1;
else if(key > a[mid])
lo = mid+1;
else
return mid;
}
return -1;
}
}
二分查找
最新推荐文章于 2023-05-28 13:59:52 发布