/*

折半查找
*/


class Demo
{
	public static void main(String args[])
	{
		int arr[]={2,4,7,9,15,37};
		int index=halfSearch(arr,15);
		System.out.println("index="+index);

	}

	public static int  halfSearch(int[] arr,int key)  
	{
		int min=0;
		int max=arr.length-1;
		int mid=(min+max)/2;//折半查找的特点就是在一个有序数组当中,任何一个元素都可以是前后两个元素角标的一半
		while (arr[mid]!=key)
		{
			if (key>arr[mid])
			{
				min=mid+1;
			}
			if (min>max)
			{
				return -1;
			}
			else if (key<arr[mid])
			{
				max=mid-1;
			}
			mid=(min+max)/2;
		}
	
			return mid;
	}
	
	
}