作者热门文章
- VisualStudio2022插件的安装及使用-编程手把手系列文章
- pprof-在现网场景怎么用
- C#实现的下拉多选框,下拉多选树,多级节点
- 【学习笔记】基础数据结构:猫树
在前端开发中,处理和搜索大量数据时,效率是一个关键因素。二分查找算法是一种高效的查找算法,适用于在有序数组中快速找到目标值。本文将详细介绍二分查找算法的基本原理、实现方法及其在前端开发中的应用.
二分查找(Binary Search)是一种在有序数组中查找目标值的算法。它通过不断将查找范围缩小一半来快速锁定目标值的位置。该算法的时间复杂度为 O(log n),显著优于线性查找算法的 O(n).
mid = (left + right) / 2
。以下是 JavaScript 中二分查找算法的实现:
function binarySearch(arr, target) { let left = 0; let right = arr.length - 1; while (left <= right) { let mid = Math.floor((left + right) / 2); if (arr[mid] === target) { return mid; // 找到目标值,返回索引 } else if (arr[mid] < target) { left = mid + 1; // 缩小到右侧部分 } else { right = mid - 1; // 缩小到左侧部分 } } return -1; // 未找到目标值 }
。
示例:
const sortedArray = [1, 3, 5, 7, 9, 11, 13, 15]; const targetValue = 7; const result = binarySearch(sortedArray, targetValue); console.log(result); // 输出 3,因为 7 在数组中的索引是 3
。
function recursiveBinarySearch(arr, target, left, right) { if (left > right) { return -1; // 未找到目标值 } let mid = Math.floor((left + right) / 2); if (arr[mid] === target) { return mid; // 找到目标值,返回索引 } else if (arr[mid] < target) { return recursiveBinarySearch(arr, target, mid + 1, right); // 右侧部分 } else { return recursiveBinarySearch(arr, target, left, mid - 1); // 左侧部分 } } // 使用递归实现 const resultRecursive = recursiveBinarySearch(sortedArray, targetValue, 0, sortedArray.length - 1); console.log(resultRecursive); // 输出 3
。
变种算法:二分查找的变种包括查找第一个或最后一个符合条件的元素、查找插入位置等.
。
最后此篇关于前端开发中的二分查找算法的文章就讲到这里了,如果你想了解更多关于前端开发中的二分查找算法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在尝试编写一个程序,在名为 items 的数组中进行顺序搜索和二分搜索,该数组具有 10000 个已排序的随机 int 值。第二个名为 targets 的数组加载了 1000 个 int 值(50
当我尝试使用图表并为其编写一些代码但没有成功时,我遇到了一个问题:/!! 我想创建一些东西来获取图形数据并检查它是否:1- 连接2-二分法3-有循环4-是一棵树 所以我想知道,例如,是否可以将其写入以
我是一名优秀的程序员,十分优秀!