Keito

© 2024 Keito

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

挿入ソートアルゴリズム

各要素を適切な位置に挿入する安定で効率的なソートアルゴリズムを学ぼう

O(n²)
時間計算量
O(1)
空間計算量
初級
難易度
ソート
カテゴリ

🔧 実行設定

配列:
[5, 2, 4, 6, 1, 3]
要素数:
6
📥

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

左側の設定パネルから条件を設定し、「挿入ソート実行」ボタンを押してください

💻 実装例(JavaScript)

function insertionSort(arr) {
    const n = arr.length;
    const sortedArray = [...arr]; // 元の配列を変更しない
    
    for (let i = 1; i < n; i++) {
        const key = sortedArray[i]; // 挿入する要素
        let j = i - 1;
        
        // キーより大きな要素を右にシフト
        while (j >= 0 && sortedArray[j] > key) {
            sortedArray[j + 1] = sortedArray[j];
            j--;
        }
        
        // キーを適切な位置に挿入
        sortedArray[j + 1] = key;
    }
    
    return sortedArray;
}

// 使用例
const unsortedArray = [5, 2, 4, 6, 1, 3];
const sortedArray = insertionSort(unsortedArray);
console.log(sortedArray); // [1, 2, 3, 4, 5, 6]