1. 程式人生 > >折半查詢確定插入陣列中元素的位置

折半查詢確定插入陣列中元素的位置

問題:
給出一組有序的整數,要在這組整數中插入一個數字,如何確定該插入數字的下標。
解決方案:
對於一組有序的整數,要用到查詢,一定為折半查詢。不同的是折半查詢是查詢是否存在元素,而這個要查詢位置。
public class Index{
	public static void main(String args[])
	{
		int[] array={6,14,15,26,32};
		int index=getIndex(array,28);
		System.out.print("index="+(index+1));
	}
	public static int getIndex(int[] array,int key)
	{
		int mid,low,high;
		low=0;
		high=array.length-1;
		mid=(low+high)>>1;
		while(low<=high)
		{
			if(array[mid]>key)
				high=mid-1;
			else if(array[mid]<key)
				low=mid+1;
			else
				return mid;
			mid=(low+high)>>1;
		}
		return low;
	}
}