二分查找法

156 阅读1分钟

正确的二分查找法

二分查找法是在有序的数组里查找目标值:target

代码:

    int binarySearch(int arr[], int n, int target) {
        //表示在[l...r]区间范围内查找目标值target
        int l = 0, r = n - 1;
        //当l==r的时候也成立,这时[l...r]只有一个值
        while (l <= r) {
            //这里这样做是为了防止整形溢出
            int mid = (r - l) / 2 + l;
            if (arr[mid] == target) {
                return mid;
            } else if (arr[mid] > target) {
                r = mid - 1;
            } else {
                l = mid + 1;
            }
        }
        return -1;
    }