基于基础的二分法查找方法,做出了相应的该进。
对二分法的整个过程梳理中,发现了 min 和 max 值的关系
因为有min <= max 的关系存在,所以才有之后的mid过程。
以这个关系为基础,重新建立了while函数的关系。并且增加了功能使该代码能够实现不在数组中的元素,应该在数组的那个位置插入
注意最后的return -return-1是改功能的体现,-1是为了防止0的出现。
class TestJava 
{
	public static void main(String[] args) 
	{
		int[] arr = {12,34,35,45,56,67,89,99,112,113,114};
		int key = 111;
		int mid = HalfSort(arr,key);
		System.out.println("位置为:" + mid);
	}
	public static int HalfSort(int arr[],int key)
	{
		int min = 0;
		int max = arr.length-1;
		int mid = 0;
		while(min <= max)
		{
		mid = (max + min) >> 1;
		if (key < arr[mid])	
			max = mid - 1;	
		else if(key > arr[mid])
			min = mid + 1;
		else
			return mid;
		}
			return -mid-1;
	}
}
原文:http://www.cnblogs.com/liufeifeifei/p/7552616.html