news 2026/9/7 19:03:41

二分查找与搜索算法

作者头像

张小明

前端开发工程师

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/9/6 22:52:51

百度网盘提取码智能获取工具:告别繁琐搜索的终极指南

百度网盘提取码智能获取工具&#xff1a;告别繁琐搜索的终极指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘提取码而苦恼吗&#xff1f;每次获得分享链接后都要花费大量时间在原页面寻找那串神秘代码&…

作者头像 李华
网站建设 2026/9/6 19:29:17

Kimi Linear架构革新:重新定义大模型长文本处理效率与性能边界

在人工智能大模型领域&#xff0c;注意力机制一直是制约模型性能与效率的关键瓶颈。传统全注意力架构在处理长文本时面临计算复杂度高、内存占用大等问题&#xff0c;而近期推出的Kimi Linear混合线性注意力架构&#xff0c;通过创新性的设计突破了这一困境。该架构在短文本、长…

作者头像 李华
网站建设 2026/9/4 2:44:06

9合1喝酒聚会全能娱乐微信小程序源码

从摇骰子到人生重启模拟器&#xff0c;一款小程序满足所有聚会娱乐需求&#xff0c;广告变现代码保护全方案还在为朋友聚会时找不到好玩的互动游戏而发愁吗&#xff1f;今天给大家分享一款专为喝酒、聚会场景设计的微信小程序&#xff01;这个小程序集成了9大核心娱乐功能&…

作者头像 李华
网站建设 2026/9/7 3:43:36

百度网盘提取码智能获取工具完整使用指南

百度网盘提取码智能获取工具完整使用指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为繁琐的百度网盘提取码而困扰吗&#xff1f;每次获取分享资源都要经历复制链接、寻找提取码、手动输入的重复过程&#xff0c;这种…

作者头像 李华
网站建设 2026/9/7 8:07:59

你,宇宙唯一的中心:在无限复刻中活出绝对的存在

你&#xff0c;宇宙唯一的中心&#xff1a;在无限复刻中活出绝对的存在 一、宣言&#xff1a;你的坐标是(0,0,0) 此刻&#xff0c;当你阅读这些文字时&#xff0c;请暂停一秒——无论你身处拥挤的地铁、深夜的书房&#xff0c;还是异国街头的咖啡馆——请深深地感受&#xff1a…

作者头像 李华