算法===二分查找

news/2024/9/25 5:12:44/

文章目录

  • 概要
  • 定义
  • 代码Python
  • 小结

概要

二分,很常用,不管是日常生活,还是工作,学习;哪怕是使用计算机查下哪块占了硬盘空间,都用的上。

二分,太常用了。比如,我的电脑某一个盘慢了,查哪占了硬盘的内存;怎么办呢?直接选择所有文件夹,然后看下总大小;分成一半,看占多数,这么找下去,用不了多久,就能找到哪个文件最占硬盘空间。

定义

二分的定义,来学习学习

二分查找针对的是一个有序的数据集合,查找思想有点类似分治思想。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。

时间复杂度O(nlogn)

代码Python

def bsearch(nums: List[int], target: int) -> int:"""Binary search of a target in a sorted arraywithout duplicates. If such a target does not exist,return -1, othewise, return its index."""low, high = 0, len(nums) - 1while low <= high:mid = low + (high - low) // 2if nums[mid] == target:return midelif nums[mid] < target:low = mid + 1else:high = mid - 1return -1

小结

这个挺好的,一直在排序算法那转了半天,终于到了下一环,感觉好多了。不过,这个查找算法一般都是排序好的,也就是经过排序算法排序好数据,然后用二分查找去找自己想要的数据。如果没有排序,给你一堆乱序数据,还是要先去排序,然后再去查找。这也是很多算法都先讲排序,后讲查找的原因(纯属猜测,如有雷同,请手下留情,忽略)。


http://www.ppmy.cn/news/1450823.html

相关文章

mac M2 配置item2 rzsz

背景 apple m 系列处理器安装的 homebrew 跟 intel 处理器略有不同&#xff0c;其中安装目录的区别&#xff1a; m 系列处理器安装目录为 /usr/local/bin/homebrew intel 处理器安装目录为 /opt/homebrew 问题1: 卡住 产生原因&#xff1a; m 系列使用 brew install lrzs…

消息队列 RabbitMQ python实战

企业面临着信息爆炸、实时数据处理、高效通信等诸多挑战。如何确保系统稳定运行、信息快速传递、应用程序高效通信?答案在于消息队列!异步通信: 不必等待!系统解耦: 消息队列将应用程序的通信解耦,降低彼此之间的依赖,让开发、部署、扩展更加灵活。数据持久化: 确保重要…

乾元通渠道商中标天津某区自然灾害应急能力提升项目

近日&#xff0c;乾元通渠道商中标天津某区自然灾害应急能力提升项目&#xff0c;乾元通作为设备厂家&#xff0c;为项目提供通信指挥类装备&#xff08;多链路聚合设备&#xff09; QYT-X1 。 随着万亿国债项目的全面铺开&#xff0c; 青岛乾元通数码科技有限公司 作为国家应急…

confluence 设置https代理

使用nginx反待confluence并开启https后&#xff0c;登录confluence会一直提示&#xff1a;scheme、proxyName、proxyPort设置错误。 解决办法&#xff1a; find / -name server.xmlvi /opt/atlassian/confluence/conf/server.xml HTTP反代配置 HTTPS反代配置

安卓adb 命令查看程序日志

gcat日志导出到文件 在Android设备上&#xff0c;你可以使用logcat命令将日志导出到文件中。打开终端或者命令行工具&#xff0c;然后输入以下命令&#xff1a; adb logcat -d > logcat.txt这条命令会将当前设备的logcat日志输出到名为logcat.txt的文件中。-d参数是用来确…

pytorch笔记:ReplicationPad1d

torch.nn.ReplicationPad1d(padding) 在 PyTorch 中&#xff0c;ReplicationPad1d 是一种用于一维数据的填充层该层通过复制序列的边缘值来增加数据的长度&#xff0c;这在卷积神经网络中常用于保持数据尺寸主要参数 padding 可以是一个整数或一个元组。 如果是一个整数&…

Docker 虚拟机 WSL

WSL&#xff08;Windows Subsystem for Linux&#xff09;是Windows操作系统中的一个功能&#xff0c;它允许用户在Windows系统上运行Linux环境。它是一个兼容层&#xff0c;通过在Windows上运行一个Linux内核接口的实现来提供对Linux二进制文件的支持。 WSL提供了一个命令行界…

【vscode】2024最新!vscode云端配置同步方案:code settings sync

小tian最近对电脑进行了系统重装&#xff0c;结果vscode相关配置和插件都没有保存记录&#xff0c;还好公司电脑里还有。痛定思痛&#xff0c;决定写一篇vscode云端同步配置方案&#xff0c;以作记录和分享~ 步骤一&#xff1a;安装vscode插件&#xff1a;code settings sync …