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

【JS】二分查找

题目

步骤

  1. 初始化指针:定义 left 和 right 两个指针,分别指向数组的起始位置和末尾位置,确定查找范围。
  2. 进入循环:只要 left 小于等于 right,就继续执行循环,因为此时查找范围不为空。
  3. 计算中间索引:通过公式 left + Math.floor((right - left) / 2) 计算中间位置 mid,以找到当前查找范围的中间元素。
  4. 比较与调整:将中间元素 nums[mid] 与目标值 target 进行比较。如果 nums[mid] 大于 target,说明目标值在中间元素的左侧,将 right 指针更新为 mid - 1,缩小查找范围到左半部分;如果 nums[mid] 小于 target,说明目标值在中间元素的右侧,将 left 指针更新为 mid + 1,缩小查找范围到右半部分;如果 nums[mid] 等于 target,则表示找到了目标值,直接返回 mid
  5. 查找失败处理:当循环结束时,如果仍未找到目标值,说明目标值不在数组中,返回 -1

示例代码 

var search = function (nums, target) {var left = 0, right = nums.length - 1;while (left <= right) {var mid = left + Math.floor((right - left) / 2);if (nums[mid] > target) {right = mid - 1;} else if (nums[mid] < target) {left = mid + 1;} else {return mid;}}return -1;
};

欢迎指正! 

原文地址:https://blog.csdn.net/m0_74662483/article/details/140915088
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mrgr.cn/news/97465.html

相关文章:

  • 【Pandas】pandas DataFrame astype
  • 4月7日随笔
  • 内网文件传输新体验,聊天、传输、自定义,一应俱全
  • C++中常用的十大排序方法之4——希尔排序
  • Redlinux(2025.3.29)
  • rhcsa第三次作业
  • 手搓多模态-06 数据预处理
  • 操作系统概述(3)
  • nginx管理nacos集群地址
  • 剖析AI与5G:是夸大其词,还是时代变革的引擎?-优雅草卓伊凡
  • CMake实战指南一:add_custom_command
  • Linux学习笔记(2) 命令基础:从概念到实践(期末,期中复习笔记全)
  • Redis 的五种数据类型面试回答
  • 使用成员函数指针数组简化C++类中的操作
  • 计算机系统---性能指标(3)续航与散热
  • 基于大模型的GCSE预测与治疗优化系统技术方案
  • NVIDIA Jetson 环境安装指导 PyTorch | Conda | cudnn | docker
  • 面试题vue
  • Ubuntu 22 Linux上部署DeepSeek R1保姆式操作详解(Xinference方式)
  • AI Agent设计模式一:Chain