一个小程序:二分查找法寻找插入点
public class ArrayDemo07 {
/**
* @param args
*/
public static void main(String[] args) {
// 获取插入点,利用二分查找的变种进行插入点的查找
//min和max一定会在key值的前面以及后面,不可能出现
//min,max都比key大或者小
int[] arr={1,3,8,12,19,45,49,52,66,75};
System.out.println(point(arr,99));
}
public static int point(int[] arr,int key)
{
int min=0;
int max=arr.length-1;
int mid=(min+max)/2;
while(min<=max)
{
if(arr[mid]>key)
max=mid-1;
else if(arr[mid]<key)
min=mid+1;
else
return mid;
mid=(min+max)/2;
}
return min;
}
}