java--折半查找2

//折半查找的另一种表达形式

class ArrayTest4 
{
	public static int halfSearch(int[] arr,int key)   //折半查找函数
	{
		int min=0,max=arr.length,mid;  // 定义变量
		while(min<=max)
		{
			
			mid=(min+max)>>1;     //移位函数:“<<x”:左移,乘以2的x次幂;“>>x”:右移,除以2的x次幂
			
			if(key<arr[mid])
				max=mid-1;
			else if(key>arr[mid])
				min=mid+1;
			else
				return mid;
		}
		
		return -11111;  //如果数组中没有key,返回-11111
	}
	
	
	public static void main(String[] args)   //主函数
	{
		int[] arr={11,22,33,44,55,66,77,88,99};  //定义一个有序的数组,有序!!
		int key=halfSearch(arr,55);
		System.out.println("key= "+key);
	}
}



java--折半查找2_第1张图片

你可能感兴趣的:(java)