前提条件是数组有序,所以我自己定义了一个有序的数组
//文件名 :Demo.java
import java.util.Arrays;
import java.util.Scanner;
public class Demo{
public static int rank(int key,int[] a){
int lo = 0;
int hi = a.length -1;
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;//非正常退出 没有找到值
}
public static void main(String[] args) {
int[] arr = {1,3,5,7,9,11,13,14,16,20};
System.out.println("中值是 : ");
System.out.println(rank(16,arr));
}
}