手写常用算法代码3 - 二分查找

二分查找

条件 : 查找序列需要是单调
优点 : 时间复杂度低,为O(logN)
规定 : 利用左闭右开区间描述 [lb, ub)

模板 :

while (ub - lb > 1) {
    int mid = (lb + ub) / 2;
    if (Check mid) { // 根据nums[mid]来判断搜索左半部分还是右半部分
        lb = mid;
    } else {
        ub = mid;
    }
}
// 视情况处理最后的lb或者ub,此时ub == lb + 1

你可能感兴趣的:(手写常用算法代码3 - 二分查找)