标签:
数组中的折半查找:只对有序的数组有效,取中间元素与查找的元素对比,如果需要查找的元素比中间元素大,则把查找范围缩小一半,以此类推,知道找到为止
public class Zheban {
public static void main(String[] args) {
int[] a={1,2,3,4,5,5,9,11,22,33};
System.out.println(index(a,6));
}
private static int index(int[] a, int i) {
int mid,max,min;
min=0;max=a.length-1;mid=(max+min)/2;
while(a[mid]!=i)
{
if(min>max)
return min;//插入一个数字所在的位置,保证数组有序,
if(a[mid]>i)
max=mid-1;
else if(a[mid]<i)
min=mid+1;
mid=(max+min)/2;
}
return mid;
}
}
标签:
原文地址:http://www.cnblogs.com/chslch/p/4856025.html