首先,Java的折半查找法适用于有序数组中某一元素下标的查找。例如:
//折半查找
public class halfSerach {
public static void main(String[] args) {
int[] a = {12,23,34,36,47,108};
int index = getIndex(a,12);
System.out.println("index="+index);
}
public static int getIndex(int[] a,int key) {
int min,max,mid;
min=0;
max=a.length-1;
while(min<max) {
mid=(min+max)/2;
if(a[mid]<key)
min=mid+1;
else if (a[mid]>key) {
max=mid-1;
}
else {
return mid;
}
}
return -1;
}
}
除了上诉一种方法,Java中还封装了一种方法
int index = Arrays.binarySearch(a, 34);
可用此函数直接找到数组中元素34的下标,与第一种方法结果相同。