算法---二分查找

1. 简述

二分查找算法是一种在有序数组中查找特定元素的算法。它通过将数组分成两部分,并重复比较目标元素与中间元素的大小关系,从而缩小搜索范围,最终找到目标元素所在的位置。

在这里插入图片描述


朴素的二分模板

以下是朴素二分查找算法的基本步骤:

1. 确定目标元素及其所在数组:首先,需要确定要查找的目标元素,并获取包含目标元素的有序数组。

2. 初始化指针:设置两个指针,即左指针(left)和右指针(right),分别指向数组的第一个元素和最后一个元素。

3. 循环查找:在每次循环中,执行以下步骤:

  • 计算中间元素的索引:通过将左指针和右指针相加并除以2,得到中间元素的索引(mid)。
  • 比较目标元素与中间元素:将目标元素与中间元素进行比较。
    • 如果目标元素等于中间元素,则找到目标元素,返回其索引。
    • 如果目标元素小于中间元素,则目标元素可能在左半部分数组中,将右指针(right) 更新为mid-1,缩小搜索范围。
    • 如果目标元素大于中间元素,则目标元素可能在右半部分数组中,将左指针(left)更新为mid+1,缩小搜索范围。

4. 重复执行步骤3,直到找到目标元素或搜索范围为空。
在这里插入图片描述
在这里插入图片描述

2. 万能模板

原理解释

查找左端点

在这里插入图片描述
在这里插入图片描述

查找右端点

在这里插入图片描述
在这里插入图片描述

查找左边界的二分模板

在这里插入图片描述

查找右边界的二分模板

在这里插入图片描述
在这里插入图片描述

相关推荐

  1. 二分查找算法

    2024-03-22 16:08:06       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-22 16:08:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-22 16:08:06       101 阅读
  3. 在Django里面运行非项目文件

    2024-03-22 16:08:06       82 阅读
  4. Python语言-面向对象

    2024-03-22 16:08:06       91 阅读

热门阅读

  1. L1-5 不变初心数分数 15

    2024-03-22 16:08:06       44 阅读
  2. 从政府工作报告探计算机行业发展

    2024-03-22 16:08:06       47 阅读
  3. 【leetcode热题】颠倒二进制位

    2024-03-22 16:08:06       46 阅读
  4. Unity构建详解(1)——SBP介绍

    2024-03-22 16:08:06       45 阅读
  5. unity自动引用生成

    2024-03-22 16:08:06       45 阅读
  6. ChatGPT:如何利用人工智能写出高质量论文

    2024-03-22 16:08:06       42 阅读
  7. LeetCode刷题——347. 前 K 个高频元素

    2024-03-22 16:08:06       45 阅读
  8. 下载NLP_gluedata数据集的脚本

    2024-03-22 16:08:06       36 阅读
  9. 类似于 FastAdmin的快速后台开发框架都有哪些

    2024-03-22 16:08:06       39 阅读
  10. k8s工作节点主要模块

    2024-03-22 16:08:06       38 阅读
  11. 大数据开发(HBase真题)

    2024-03-22 16:08:06       35 阅读