当前位置: 首页 > news >正文

[面试] 手写题-二分查找

二分查找

时间复杂度为 O(log n),适用于已排序的数组

二分查找的基本思想是通过不断将查找范围减半,从而快速缩小查找范围,直到找到目标元素或确定目标元素不存在。

leetcode704. 二分查找

在这里插入图片描述

在升序数组 nums 中寻找目标值 target,对于特定下标 i,比较 nums[i] 和 target 的大小:
如果 nums[i]=target,则下标 i 即为要寻找的下标;
如果 nums[i]>target,则 target 只可能在下标 i 的左侧;
如果 nums[i]<target,则 target 只可能在下标 i 的右侧。

基于上述事实,可以在有序数组中使用二分查找寻找目标值。

循环实现

var search = function(nums, target) {let left = 0, right = nums.length - 1;// 循环查找,跳出条件left<=rightwhile (left <= right) {const mid = Math.floor((right - left) / 2) + left;const num = nums[mid];if (num === target) { // 如果目标值等于中间值,则返回中间值索引return mid;} else if (num > target) {  // 如果目标值小于中间值,则右指针向左移动right = mid - 1;} else {  // 如果目标值大于中间值,则左指针向右移动left = mid + 1;}}return -1;
};

递归实现

function BinSearch(arr, target,left,right) {// 终止条件if (left > right) return -1;  let left = left|| 0let right = right|| (arr.length - 1)let mid = Math.floor((right - left) / 2) + left;if (arr[mid] === target) {return mid} else if (arr[mid] < target) {return BinSearch(arr, target,mid+1,right)} else {return BinSearch(arr, target,left,mid-1)}
}

参考:

b站-5分钟学会:二分查找

手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找

leetcode题解

js基本算法:冒泡排序,二分查找

http://www.dtcms.com/a/275891.html

相关文章:

  • linux学习第30天(线程同步和锁)
  • WordPress Ads Pro Plugin本地文件包含漏洞(CVE-2025-4380)
  • 计算机毕业设计springboot服装工厂移动报表软件设计 基于SpringBoot的服装企业移动端数据可视化系统 面向服装制造行业的移动报表与公告发布平台
  • 微服务环境下的灰度发布与金丝雀发布实战经验分享
  • 多路选择器的学习
  • 《Java Web程序设计》实验报告六 JSP+JDBC+MySQL实现登录注册
  • 【飞算JavaAI】一站式智能开发,驱动Java开发全流程革新
  • 20250712-1-Kubernetes 监控与日志管理-K8s日志管理与维护_笔记
  • Go语言中的Options模式
  • 【Go + Gin 实现「双 Token」管理员登录】
  • Linux驱动08 --- 数据库
  • MCU芯片的功能安全机制E2E的基本原理和应用实现
  • 解锁C++数据结构:开启高效编程之旅
  • IDEA+Eclipse+Lombok无效问题排查
  • Java 之字符串 --- String 类
  • 电脑上如何查看WiFi密码
  • 什么是Jaccard 相似度(Jaccard Similarity)
  • 蓝牙调试抓包工具--nRF Connect移动端 使用详细总结
  • 日志不再孤立!用 Jaeger + TraceId 实现链路级定位
  • 程序在计算机中如何运行?——写给编程初学者的指南
  • 12.使用VGG网络进行Fashion-Mnist分类
  • Jenkins+Gitee+Docker容器化部署
  • 三步定位 Git Push 403:从日志到解决
  • 【深度剖析】致力“四个最”的君乐宝数字化转型(下篇:转型成效5-打造数字化生存能力探索可持续发展路径)
  • 【Datawhale AI夏令营】mcp-server
  • LeetCode 每日一题 2025/7/7-2025/7/13
  • 1. 好的设计原则
  • XCTF-Mary_Morton双漏洞交响曲:格式化字符串漏洞泄露Canary与栈溢出劫持的完美配合
  • 【2024CSP-J初赛】阅读程序(2)试题详解
  • 剑指offer57_和为S的两个数字