package 第二章;
import java.util.Arrays;
import java.util.Random;
/**
-
@author:小陈
-
@time: 10-29
*/
public class 二分查找 {public static void main(String[] args) {
//必须保证数列是有序的
Random random=new Random();
int[] num=new int[10];
for (int i=0;i<10;i++){ //生成一个随机数数组,每个元素小于100
num[i]=random.nextInt(100);
}
Arrays.sort(num); //排序
for (int n:num){
System.out.print(n+“\t”); //为方便观察,打印数组
}
System.out.println();
int index=binarySearch(num,num[random.nextInt(10)]);
System.out.println(index);
}
//二分查找算法
public static int binarySearch(int[] num,int key){
int start =0; //开始下标
int end=num.length-1; //结束下标
while(end>=start){
int middle=(start+end)/2;
if (num[middle]>key){
end=middle-1;
}else if (num[middle]<key){
start=middle+1;
}else {
return middle;
}
}
return -1; //没找到的话,就返回-1;
}
}