1.二分查找

1.模板

int search(vector<int>& nums, int target) {
    int l=0;
    int r=nums.size();
    int mid;
    while(l<r){
        mid=(l+r)/2;
        if(nums[mid]<target){
            l=mid+1;
        }else if(nums[mid]>target){
            r=mid;
        }else{
            return mid;
        }
    }
    return -1;
}

2.分析

在数组范围内不断缩小范围为一半,最后没找到l=r

3.复杂度分析

时间复杂度:O(log n),其中 n 是数组的长度。
空间复杂度:O(1)。

posted @   lwx_R  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-08-30 微信公众号获取m3u8地址
点击右上角即可分享
微信分享提示