前言:讲究的就是一个清晰
原文出处:http://blog.csdn.net/u014158743/article/details/52590544
class Demo
{
public static void main(String[] args)
{
//二分法查找:前提条件:被查找的数组必须是有序的
int[] arr = {23,34,45,56,67,78,89,120};
int key = 99;
int index = halfSearch(arr,key);
System.out.println("index="+index);
}
//二分法查找
//结果:下标或-1
//参数:数组和被找的数
public static int halfSearch(int[] arr,int key)
{
int min = 0,max = arr.length-1,mid;
while(min<=max)
{
mid = (min+max)>>1;
if(key>arr[mid])
min = mid+1;
else if(key<arr[mid])
max = mid-1;
else
return mid;
}
return -1;
}
}