2025寒假备战蓝桥杯01---朴素二分查找的学习

server/2025/1/21 4:46:21/

文章目录

  • 1.暴力方法的引入
  • 2.暴力解法的思考 与改进
  • 3.朴素二分查找的引入
  • 4.朴素二分查找的流程
  • 5.朴素二分查找的细节
  • 6.朴素二分查找的题目

1.暴力方法的引入

对于下面的这个有序的数据元素的组合,我们的暴力解法就是挨个进行遍历操作,一直找到和我们的这个target一样的这个元素才终止;

image-20250119234416611

2.暴力解法的思考 与改进

上面的暴力解法试过之后,我们会发现,上面的解法每次只能干掉一个元素,但是如果我们指定某一个元素,比如下面的这个4,这个时候4<5,我们直接往后面看就可以了,前面的全部都被干掉了,这个就是对于上面的暴力解法的这个改进;

image-20250119234534642

3.朴素二分查找的引入

上面可以得知,我们是找一个随机元素,我们的二分查找是取中间的这个元素,但是按照上面的思路,我们可以去任意元素,可以是1/3分段点,或者是1/4分段点,但是只有这个二分查找保留了下来,并没有类似于这个三份,四分之类的;

这个主要是使用数学推导之后就可以发现,当取这个中间元素的时候,我们的这个时间复杂度是最低的;

4.朴素二分查找的流程

下面的这个就是有序数组的这个查找的流程,学过c语言或者数据结构的对于这个应该很熟悉,在此不多言了;

image-20250119234934941

5.朴素二分查找的细节

1)循环的结束:我们的这个left==right的时候,这个还是需要继续进行判断的,直到left>right;

2)根据这个每次取中的原理,可以知道每一次就看到了一半的元素,以此类推求解这个时间复杂度,如图所示;

image-20250119235051358

6.朴素二分查找的题目

image-20250119235231988

1)思路和我们上面的描述就是一致的,不多言了;

2)对于这个mid的取值,本来是可以直接使用这个(left+right)/2计算的,但是这个里面的使用的left+区间长度的一半,这个主要是考虑栈溢出的风险,使用减法巧妙处理掉这个问题;

+区间长度的一半,这个主要是考虑栈溢出的风险,使用减法巧妙处理掉这个问题;

image-20250119235312987


http://www.ppmy.cn/server/160084.html

相关文章

Wi-Fi 7、Wi-Fi 6 与 5G、4G 的全方位对比

随着无线通信技术的飞速发展&#xff0c;Wi-Fi 7、Wi-Fi 6&#xff0c;以及5G、4G 已经成为人们生活和工作中不可或缺的网络技术。无论是家庭网络、高速移动通信&#xff0c;还是工业物联网&#xff0c;这些技术都在发挥各自的作用。那么&#xff0c;它们之间有什么区别&#x…

wireshark抓路由器上的包 抓包路由器数据

文字目录 抓包流程概述设置抓包配置选项 设置信道设置无线数据包加密信息设置MAC地址过滤器 抓取联网过程 抓包流程概述 使用Omnipeek软件分析网络数据包的流程大概可以分为以下几个步骤&#xff1a; 扫描路由器信息&#xff0c;确定抓包信道&#xff1b;设置连接路由器的…

Android 高版本如何获取App安装列表?

有个需求需要获取App内的安装列表,但是现在在高版本Android中,只能获取到一部分App效果,我获取的代码如下: val calendar Calendar.getInstance()val packageManager context.packageManagerval usageStatsManager context.getSystemService(Context.USAGE_STATS_SERVICE) …

RC2在线加密工具

RC2是由著名密码学家Ron Rivest设计的一种传统对称分组加密算法&#xff0c;它可作为DES算法的建议替代算法。RC2是一种分组加密算法&#xff0c;RC2的密钥长度可变&#xff0c;可以从8字节到128字节&#xff0c;安全性选择更加灵活。 开发调试上&#xff0c;有时候需要进行对…

网安快速入门之Windows命令

在Windows中 我们今天介绍几个命令&#xff1a; help copy dir cd type del ipconfig net netstat tasklist sc1. help 显示命令的帮助信息。或者显示Windows内置命令。 常用参数&#xff1a; <命令>&#xff1a;查看指定命令的帮助。 示例&#xff1a;help copy 显…

Conda的一些常用命令

以下是Conda的一些常用命令&#xff1a; pip freeze > requirements.txt pip install -r requirements.txt 基本信息查看类 查看conda版本&#xff1a; conda -V 或 conda --version 可以查看当前安装的conda版本。 查看conda帮助信息&#xff1a; conda -h 或 conda --he…

[计算机网络]一. 计算机网络概论第一部分

作者申明&#xff1a;作者所有文章借助了各个渠道的图片视频以及资料&#xff0c;在此致谢。作者所有文章不用于盈利&#xff0c;只是用于个人学习。 1.0推荐动画 【网络】半小时看懂<计算机网络>_哔哩哔哩_bilibili 1.1计算机网络在信息时代的作用 在当今信息时代&…

会话_JSP_过滤器_监听器_Ajax

第8章 会话_JSP_过滤器_监听器_Ajax 8.1 会话 8.1.1 会话管理概述 1、为什么需要会话管理 HTTP是无状态协议&#xff1a; 无状态就是不保存状态&#xff0c;即无状态协议(stateless)&#xff0c;HTTP协议自身不对请求和响应之间的通信状态进行保存&#xff0c;也就是说&…