news 2026/10/18 22:42:21

二分查找与搜索算法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
二分查找与搜索算法

二分查找(binary search)是一种基于分治策略的高效搜索算法。它利用数据的有序性,每轮缩小一半搜索范围,直至找到目标元素或搜索区间为空为止。

/* 二分查找(双闭区间) */intbinarySearch(int[]nums,inttarget){// 初始化双闭区间 [0, n-1] ,即 i, j 分别指向数组首元素、尾元素inti=0,j=nums.length-1;// 循环,当搜索区间为空时跳出(当 i > j 时为空)while(i<=j){intm=i+(j-i)/2;// 计算中点索引 mif(nums[m]<target)// 此情况说明 target 在区间 [m+1, j] 中i=m+1;elseif(nums[m]>target)// 此情况说明 target 在区间 [i, m-1] 中j=m-1;else// 找到目标元素,返回其索引returnm;}// 未找到目标元素,返回 -1return-1;}

在算法题中,我们常通过将线性查找替换为哈希查找来降低算法的时间复杂度。给定一个整数数组 nums 和一个目标元素 target ,请在数组中搜索“和”为 target 的两个元素,并返回它们的数组索引。返回任意一个解即可。这是算法第一题两数之和。
1,暴力枚举

/* 方法一:暴力枚举 */int[]twoSumBruteForce(int[]nums,inttarget){intsize=nums.length;// 两层循环,时间复杂度为 O(n^2)for(inti=0;i<size-1;i++){for(intj=i+1;j<size;j++){if(nums[i]+nums[j]==target)returnnewint[]{i,j};}}returnnewint[0];}

2,哈希查找,借助一个哈希表,键值对分别为数组元素和元素索引。循环遍历数组。

/* 方法二:辅助哈希表 */int[]twoSumHashTable(int[]nums,inttarget){intsize=nums.length;// 辅助哈希表,空间复杂度为 O(n)Map<Integer,Integer>dic=newHashMap<>();// 单层循环,时间复杂度为 O(n)for(inti=0;i<size;i++){if(dic.containsKey(target-nums[i])){returnnewint[]{dic.get(target-nums[i]),i};}dic.put(nums[i],i);}returnnewint[0];}

线性搜索适用于小型或频繁更新的数据;二分查找适用于大型、排序的数据;哈希查找适用于对查询效率要求较高且无须范围查询的数据;树查找适用于需要维护顺序和支持范围查询的大型动态数据。用哈希查找替换线性查找是一种常用的优化运行时间的策略,可降低时间复杂度。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/17 15:33:00

AI搜索排名GEO优制造业案例分享

AI搜索排名GEO优化在制造业的应用案例分享随着人工智能技术的不断发展&#xff0c;AI在各个行业的应用越来越广泛。特别是在制造业中&#xff0c;通过AI搜索排名和GEO&#xff08;Geographic Optimization&#xff09;优化&#xff0c;企业能够显著提升其在线可见性和市场竞争力…

作者头像 李华
网站建设 2026/10/18 6:45:43

实习刷题11

四十一&#xff1a;买卖股票的最佳时期有点像打家劫舍&#xff0c;可以分成四个状态&#xff0c;一个是持有股票&#xff0c;一个是未持有股票但可购买&#xff0c;一个是冷静期&#xff0c;一个是卖出股票的状态。还有一个是状态转移&#xff0c;也就是我就只有两个状态一个是…

作者头像 李华
网站建设 2026/10/16 23:21:55

ComfyUI中的节点兼容性检测机制说明

ComfyUI中的节点兼容性检测机制深度解析 在如今的生成式AI浪潮中&#xff0c;图像与视频生成工具早已从“一键出图”的玩具阶段&#xff0c;迈入了高度定制化、模块化的工作流时代。Stable Diffusion 的爆发式普及&#xff0c;催生了大量对精细化控制的需求——用户不再满足于简…

作者头像 李华
网站建设 2026/10/18 9:32:11

2、搭建低成本高效渗透测试平台指南

搭建低成本高效渗透测试平台指南 在搭建渗透测试平台时,我们的目标是构建一个低成本、小体积但功能强大的平台。下面将详细介绍硬件和软件的选择,以及搭建过程中的具体步骤。 1. 硬件选择及树莓派的优势 在寻找便宜且便携的计算设备时,有众多选择。在购买前,我们列出了一…

作者头像 李华
网站建设 2026/10/18 8:29:48

10、目标探索:侦察与武器化

目标探索:侦察与武器化 在网络安全领域,对目标进行深入的侦察和分析是非常重要的。本文将介绍一些实用的工具和技术,帮助你更好地探索目标网络,获取有价值的信息。 1. 网络流量监控与URL抓取 当相关命令运行后,树莓派可用于两个主机间的通信。例如,192.168.1.38 是主机…

作者头像 李华
网站建设 2026/10/17 21:02:07

19、树莓派替代项目:OpenVPN与Tor网络搭建指南

树莓派替代项目:OpenVPN与Tor网络搭建指南 1. OpenVPN配置 在完成公钥基础设施(PKI)相关操作后,会生成一些关键的密钥和证书,这些可以帮助客户端和服务器建立加密通道。匹配客户端名称的文件(如 client1.* )和 ca.crt 文件需要安全地复制到客户端,因为这些密钥在…

作者头像 李华