2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Die binäre Suche ist ein effizienter Suchalgorithmus, der sich zum schnellen Auffinden von Zielelementen in geordneten Arrays eignet. Im Vergleich zur linearen Suche beträgt die zeitliche Komplexität der binären Suche O (log n), was effizienter ist. In diesem Artikel werden das Prinzip, die Implementierung und die Anwendung des binären Suchalgorithmus ausführlich vorgestellt.
Die binäre Suche findet das Zielelement schnell, indem sie den Suchbereich kontinuierlich halbiert. Die grundlegenden Schritte sind wie folgt:
Das Folgende ist die JavaScript-Implementierung der binären Suche:
/**
* 二分查找算法
* @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
Die binäre Suche ist ein effizienter Suchalgorithmus, der das Zielelement in einem geordneten Array schnell finden kann, indem der Suchbereich kontinuierlich halbiert wird. Das Verständnis und die Beherrschung des binären Suchalgorithmus sind für die Lösung vieler praktischer Probleme und die Optimierung der Programmleistung von großer Bedeutung. Ich hoffe, dass dieser Artikel Ihnen hilft, die binäre Suche zu verstehen und anzuwenden.