二分查找:
已排序好的序列。
将中间元素与待查找元素比较,若待查找元素较大,则折半查找右半部分,若待查找元素较小,则折半查找左半部分,否则直接返回中间元素对应的索引。
public static int binsearch(int value, int[] numbers) {
int low = 0;
int high = numbers.length - 1;
while (low <= high) {
int mid = (high + low) / 2;
if (value < numbers[mid])
high = mid - 1;
else if (value > numbers[mid])
low = mid + 1;
else
return mid;
}
return -1;
}
时间复杂度:O(logn)