Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
La búsqueda binaria es un algoritmo de búsqueda eficiente adecuado para localizar rápidamente elementos de destino en matrices ordenadas. En comparación con la búsqueda lineal, la complejidad temporal de la búsqueda binaria es O (log n), que es más eficiente. Este artículo presentará en detalle el principio, la implementación y la aplicación del algoritmo de búsqueda binaria.
La búsqueda binaria localiza rápidamente el elemento objetivo reduciendo continuamente a la mitad el rango de búsqueda. Los pasos básicos son los siguientes:
La siguiente es la implementación JavaScript de la búsqueda binaria:
/**
* 二分查找算法
* @param {number[]} arr - 有序数组
* @param {number} target - 目标元素
* @return {number} - 目标元素的索引,未找到返回 -1
*/
function binarySearch(arr, target) {
let left = 0;
let right = arr.length - 1;
while (left <= right) {
const 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 arr = [1, 3, 5, 7, 9, 11, 13];
const target = 7;
const index = binarySearch(arr, target);
console.log(index); // 输出: 3
/**
* 递归实现二分查找算法
* @param {number[]} arr - 有序数组
* @param {number} target - 目标元素
* @param {number} left - 左索引
* @param {number} right - 右索引
* @return {number} - 目标元素的索引,未找到返回 -1
*/
function binarySearchRecursive(arr, target, left = 0, right = arr.length - 1) {
if (left > right) {
return -1; // 未找到目标元素
}
const mid = Math.floor((left + right) / 2);
if (arr[mid] === target) {
return mid; // 找到目标元素
} else if (arr[mid] < target) {
return binarySearchRecursive(arr, target, mid + 1, right); // 查找右半部分
} else {
return binarySearchRecursive(arr, target, left, mid - 1); // 查找左半部分
}
}
// 示例
const indexRecursive = binarySearchRecursive(arr, target);
console.log(indexRecursive); // 输出: 3
La búsqueda binaria es un algoritmo de búsqueda eficiente que puede localizar rápidamente el elemento objetivo en una matriz ordenada reduciendo continuamente a la mitad el rango de búsqueda. Comprender y dominar el algoritmo de búsqueda binaria es de gran importancia para resolver muchos problemas prácticos y optimizar el rendimiento del programa. Espero que este artículo le ayude a comprender y aplicar la búsqueda binaria.