尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

二分查找与搜索算法

二分查找与搜索算法
📅 发布时间:2026/6/21 13:17:13

二分查找(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];}

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

相关新闻

  • 2、搭建低成本高效渗透测试平台指南
  • 3、打造强大渗透测试平台:树莓派与Kali Linux的完美结合
  • 6、渗透测试:从准备到执行

最新新闻

  • 淮安代理记账有哪些坑?清江浦 / 淮阴 / 涟水 / 盱眙企业避坑完整指南 - 山沟沟的小娃娃
  • ControlFoley:基于AI的统一可控视频音效生成框架解析
  • 2026武汉高三全托签约提分靠谱吗|武汉高考复读学校怎么选 - 武汉中职最新信息发布
  • OOP第二阶段PTA4~5次作业总结
  • ThinkPad风扇控制新方案:如何让散热更智能、更安静?
  • S32K3汽车MCU实战:从M7内核到ASIL D安全,赋能电机控制与BMS开发

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号