JavaScript实现二分查找实例代码

网络编程 2025-03-13 09:57www.168986.cn编程入门

【深入】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

}

```

二、无序数组的二分查找

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by