1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public int binarySearch(int[] array, int des) { int low = 0, high = array.length - 1; while (low <= high) { int mid = low + (high - low) / 2; if (des == array[mid]) { return mid; } else if (des < array[mid]) { high = mid - 1; } else { low = mid + 1; } } return -1; }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public class Solution {
public int mySqrt(int x) { if (x == 0) { return 0; } long left = 1; long right = x / 2; while (left < right) { long mid = (left + right + 1) >>> 1; long square = mid * mid; if (square > x) { right = mid - 1; } else { left = mid; } } return (int) left; }
}
|
二分查找
Binary Search Solution in Leetcode
二分查找细节详解_labuladong