JavaScript实现二分查找实例代码
【深入】JavaScript二分查找算法实例,有序与无序数组应用全
在数据结构与算法的世界中,二分查找是一种非常高效的搜索算法,主要应用于有序的数组。本文将带您深入理解JavaScript实现二分查找的实例代码,无论是对于有序还是无序数组,我们都能找到有效的解决方案。
一、有序数组的二分查找
对于有序数组,我们可以直接使用递归或循环来实现二分查找。
递归实现:
```javascript
function binarySearchRecursive(target, arr, start, end) {
let start = start || 0;
let end = end || arr.length - 1;
const mid = Math.floor((start + end) / 2);
if (target === arr[mid]) {
return mid; // 找到目标,返回索引
} else if (target > arr[mid]) {
// 目标在mid右侧,缩小查找范围到右侧部分数组
return binarySearchRecursive(target, arr, mid + 1, end);
} else {
// 目标在mid左侧,缩小查找范围到左侧部分数组
return binarySearchRecursive(target, arr, start, mid - 1);
}
return -1; // 如果没有找到目标,返回-1
}
```
循环实现:
```javascript
function binarySearchLoop(target, arr) {
let start = 0;
let end = arr.length - 1;
while (start <= end) {
const mid = Math.floor((start + end) / 2);
if (target === arr[mid]) {
return mid; // 找到目标,返回索引
} else if (target > arr[mid]) {
start = mid + 1; // 目标在mid右侧,缩小查找范围到右侧部分数组
} else {
end = mid - 1; // 目标在mid左侧,缩小查找范围到左侧部分数组
}
}
return -1; // 如果没有找到目标,返回-1
}
```
二、无序数组的二分查找
编程语言
- JavaScript实现二分查找实例代码
- 解决在Bootstrap模糊框中使用WebUploader的问题
- 浅谈js 闭包引起的内存泄露问题
- PHP的Yii框架中移除组件所绑定的行为的方法
- 浅谈PHP与C#的值类型指向区别的详解
- AngularJS 验证码60秒倒计时功能的实现
- java 中文字符串数组按照音序排列
- php根据用户名和手机号查询是否存在手机号码
- 实例详解display-none与visible-hidden的区别
- 基于jQuery实现的打字机效果
- windows无法启动MySQL服务报错1067的解决方法
- 真正能用,还有点效果的CSS挂马代码的方法
- 宝丽通实现连续播放实现代码
- PHP 中使用explode()函数切割字符串为数组的示例
- vue2.0$nextTick监听数据渲染完成之后的回调函数方
- javascript实现简单的贪吃蛇游戏