Keito

© 2024 Keito

技術ブログとポートフォリオ

二分探索アルゴリズム

ソート済み配列から効率的に要素を見つける基本的なアルゴリズムを学ぼう

O(log n)
時間計算量
O(1)
空間計算量
初級
難易度
探索
カテゴリ

🔧 実行設定

配列:
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
探索対象:
7
🔍

アルゴリズムを実行してください

左側の設定パネルから条件を設定し、「アルゴリズム実行」ボタンを押してください

💻 実装例(JavaScript)

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 sortedArray = [1, 3, 5, 7, 9, 11, 13];
const index = binarySearch(sortedArray, 7);
console.log(index); // 3