作者: 杨杨 时间: 2013-3-6 11:27
public static int binarySearch(int[] a, int key) {
return binarySearch0(a, 0, a.length, key);
}
private static int binarySearch0(int[] a, int fromIndex, int toIndex,
int key) {
int low = fromIndex;//数组下标而不是 数组的值
int high = toIndex - 1;//数组下标而不是 数组的值
while (low <= high) {
int mid = (low + high) >>> 1;//如果我写的话(low+high)/2 学习了 人家写的就是好啊 效率问题
int midVal = a[mid];
if (midVal < key)
low = mid + 1;
else if (midVal > key)
high = mid - 1;
else
return mid; // key found
}
return -(low + 1); // key not found.
}作者: 黄欢 时间: 2013-3-6 11:37
你可以去看下数据结构。这个上面这些方法很多。