二分查找
1. 二分查找是一种算法,其输入是一个有序的元素列表(必须有序的)。如果要 查找的元素包含在列表中,二分查找返回其位置;否则返回null。
一般而言,对于包含n个元素的列表,用二分查 找最多需要log2n步,而简单查找最多需要n步。
private static int binarySearch(int[] eles, int tgt) {
int low = 0;
int high = eles.length - 1;
int mid = -1;
while (low <= high) {
mid = (high + low) / 2;
System.out.println(String.format("high:%d, low:%d, mid:%d", high, low, mid));
if (tgt < eles[mid]) {
high = mid - 1;
} else if (tgt > eles[mid]) {
low = mid + 1;
} else {
return mid;
}
}
return -1;
}