二分查找

43 阅读1分钟
public int search(int[] nums, int target) {
    int left = 0;
    int right = nums.length - 1;
    while (left <= right) {
    //int mid1 = (left + right) / 2; 和可能超过最大值
    //最好用left + (right - left)〉>> 2
        int mid = left + (right - left) / 2;
        if (nums[mid] == target) {
            return mid;
        } else if (nums[mid] > target) {
            right = mid - 1;
        } else {
            left = mid + 1;
        }
    }
    return -1;
}