1、折半查找(Binary Search)
查找过程:先确定待查记录所在的范围(区间),然后逐步缩小范围直到找到或者找不到该记录为止。
仅适合顺序存储的有序表
2、java实现
找到则返回所在的位置 未找到返回-1
public int BinarySearch(int [] array,int k) {
int low = 0;
int high = array.length-1;
while(low <= high) {
int mid = (low + high) / 2;
if(array[mid] > k) {
high = mid-1;
}
else if(array[mid] < k) {
low = mid + 1;
}
else if(array[mid] == k) {
return mid;
}
}
return -1;
}