二分查找
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; }