美文网首页
数组一:二分查找

数组一:二分查找

作者: 程一刀 | 来源:发表于2021-05-13 14:11 被阅读0次

题目地址: https://leetcode-cn.com/problems/binary-search/

题目描述: 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

参考代码

class Solution {
public:
    int search(vector<int>& nums, int target) {
        int left = 0;
        int right = nums.size()-1;
        while (left <= right) { // 当left==right,区间[left, right]依然有效
            int middle = left + ((right - left) / 2);// 防止溢出 等同于(left + right)/2
            if (nums[middle] > target) {
                right = middle - 1; // target 在左区间,所以[left, middle - 1]
            } else if (nums[middle] < target) {
                left = middle + 1; // target 在右区间,所以[middle + 1, right]
            } else { // nums[middle] == target
                return middle;
            }
        }
        return -1;

    }
};

int main(int argc, const char * argv[]) {
    vector<int> data1 = {};
    //  4 5,   target = 5  <= 满足
    //4,5     target = 4   <= 满足
    int a = Solution().search(data1, 2);
}

参考链接 https://github.com/youngyangyang04/leetcode-master/blob/master/problems/0704.%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE.md

相关文章

  • 二分法查找

    二分法查找的前提是数组必须排序!!!二分法查找的前提是数组必须排序!!!二分法查找的前提是数组必须排序!!!二分法...

  • 查找

    顺序查找 二分查找 插值查找 查找子数组最大和

  • 二分查找及其扩展

    在有序数组中,二分查找是效率较高的查找算法。二分查找一般有递归和迭代 对有序数组查找指定数字在数组中出现的次数//...

  • Java数据结构和算法(有序数组和二分查找)

    一、概述 有序数组中常常用到二分查找,能提高查找的速度。今天,我们用顺序查找和二分查找实现数组的增删改查。 二、有...

  • 二分查找算法( 递归&&非递归)java

    一、二分查找概念: 所谓二分查找就是在一个有序的数组中要查找一个元素(target),首先将target与数组中间...

  • day13

    查找算法 顺序查找 二分查找 差值查找 斐波那契查找 二分查找 前提数组必须是有序的。 升级 Interpolat...

  • 循环数组的二分查找--Java实现

    与普通二分查找的不同: 以上的查找对象为循环数组,而普通二分查找的对象为有序的普通数组; 正因为是循环数组,取中进...

  • BinarySearch

    前提 必须是有序数组。 思路 无重复数组二分查找 有重复数组二分查找 思路 1.退出条件leftIndx>righ...

  • 算法和数据结构3.2二分查找

    二分查找也是一种在数组中查找数据的方法。它只能查找已经排好序的数据。 二分查找通过比较数组中间的数据与目标数据的大...

  • 108. Convert Sorted Array to Bin

    思路:递归,二分查找要把一个数组变为二分查找树,数组中间点就是根节点,依次递归构造左右子树。

网友评论

      本文标题:数组一:二分查找

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