美文网首页
数据结构 - 二分查找

数据结构 - 二分查找

作者: nlpming | 来源:发表于2020-06-12 00:03 被阅读0次
注意事项
  • 二分查找针对有序数组
  • 时间复杂度:O(logn)
代码实现
  • 注意:初始化:left=0, right=nums.size()-1,搜索的范围是[left, right],前闭后闭区间;
  • 循环继续执行的条件:left <= right
#include <iostream>
#include <vector>
using namespace std;

/**
 * 二分查找
 * @param nums
 * @param target
 * @return
 */
int binary_search(vector<int> nums, int target){
    if(nums.size() < 1)
        return -1;

    // 在[left, right]中查找
    int left=0, right=nums.size()-1;

    while(left <= right){
        int mid=(left+right)/2;
        if(nums[mid] == target)
            return mid;

        if(target > nums[mid])
            left = mid+1;
        else
            right = mid-1;
    }

    return -1;
}

int main(){

    vector<int> nums={1,3,5,7,9,11};
    cout<<binary_search(nums, 7)<<endl;


    return 0;
}

相关文章

  • 排序算法

    算法与数据结构基础 查找算法: 二分查找法: 简介:二分查找法又被称为折半查找法,用于预排序的查找问题 过程: 如...

  • 二分查找

    二分查找是一种查询效率非常高的查找算法。又称折半查找。 起初在数据结构中学习递归时实现二分查找,实际上不用递归也可...

  • java实现二分查找-两种方式

    二分查找是一种查询效率非常高的查找算法。又称折半查找。 起初在数据结构中学习递归时实现二分查找,实际上不用递归也可...

  • 【爬虫】数据结构实现折半查找的算法

    数据结构实现折半查找的算法 折半查找技术,也就是二分查找,通常称为二分法查找。它的前期是线性表中的记录必须是关键码...

  • 2021-02-02

    二分查找(折半查找) 二分查找的过程和序列的下标从0开始还是从1开始无关。一般我们从1开始 数据结构重点讲过,这里...

  • 2018-08-13

    数据结构 二分查找 1、使用二分查找需要满足的条件: (1) 存储在数组中 (2) 有序排列 所以如果是用链表存储...

  • 数据结构实验之查找四:二分查找

    数据结构实验之查找四:二分查找 Time Limit: 30MS Memory Limit: 65536KB Pr...

  • 数据结构与算法 树 引言 顺序查找 ​ 哨兵的方式 ​ 时间复杂度为O(N) 二分查找查找树的形式我...

  • 二分查找

    二分查找,是一种在特定环境下较为快速的查找方法,为什么这样说呢,以为二分查找的依赖性很强,非常依赖线性表的数据结构...

  • 想去阿里——这是你必备的实力

    算法和数据结构数组、链表、二叉树、队列、栈的各种操作(性能,场景) 二分查找和各种变种的二分查找 各类排序算法以及...

网友评论

      本文标题:数据结构 - 二分查找

      本文链接:https://www.haomeiwen.com/subject/ltswtktx.html