2、数组问题最常见

发布时间 2023-04-27 21:13:38作者: lidongdongdong~

1、二分查找法

二分查找法(Java 实现)

template<typename T>
int binarySearch(T arr[], int n, T target) {
    // 在 [l ... r] 的范围里寻找 target
    int l = 0;
    int r = n - 1;
    int mid;

    // 当 l == r 时, 区间 [l ... r] 依然是有效的
    while (l <= r) {
        mid = l + (r - l) / 2;
        if (arr[mid] == target) return mid;
        if (arr[mid] < target) l = mid + 1;
        else r = mid - 1;
    }

    return -1;
}