java--折半查找

/*
折半查找
*/

class TwoSearch 
{
	//折半查找可以提高效率,但必须得保证是有序的数组
	public static int halfSearch(int[] arr,int key)//折半查找函数
	{
		int min,max,mid;
		min=0;
		max=arr.length-1;
		mid=(min+max)/2;

		while(arr[mid]!=key)
		{
			if(key>arr[mid])
			{
				min=mid+1;
			}else if(key<arr[mid])
			{
				max=mid-1;
			}
			if(min>max)           //如果数组中没有所求的数,返回-1
				return -1;
			mid=(min+max)/2;     //保证函数继续
		}
		return mid;
	}


	public static void main(String[] args) //主函数
	{
		int[] arr={6,13,25,33,56,67,89,99,123,387};//必须定义有序的数组
		int key=halfSearch(arr,89);
		System.out.println("key= "+key);
	}
}




原文地址:https://www.cnblogs.com/dyllove98/p/3202996.html