JavaScriptでのバイナリソートの実装方法


  1. Array.prototype.sort()を使用する方法:

    const arr = [4, 2, 7, 1, 5];
    arr.sort((a, b) => a - b);
    console.log(arr);
    // 出力: [1, 2, 4, 5, 7]

    Array.prototype.sort()は、与えられた配列を破壊的にソートします。コールバック関数 (a, b) => a - b を使用することで、要素を昇順でソートすることができます。

  2. バイナリソートの独自実装:

    function binarySort(arr) {
    if (arr.length <= 1) {
    return arr;
    }
    const pivot = arr[Math.floor(arr.length / 2)];
    const equal = arr.filter(element => element === pivot);
    const less = arr.filter(element => element < pivot);
    const greater = arr.filter(element => element > pivot);
    return binarySort(less).concat(equal, binarySort(greater));
    }
    const arr = [4, 2, 7, 1, 5];
    const sortedArr = binarySort(arr);
    console.log(sortedArr);
    // 出力: [1, 2, 4, 5, 7]

    この方法では、バイナリソートを再帰的に実装しています。与えられた配列をピボットと比較し、小さい要素、同じ要素、大きい要素に分割します。それぞれの部分配列を再帰的にバイナリソートし、結合することで最終的なソート済み配列を得ることができます。

これらはJavaScriptでバイナリソートを実装するための基本的な方法です。他にも様々なバイナリソートのアルゴリズムが存在しますので、興味があればさらなる調査をおすすめします。