PHPでの挿入ソートの実装方法


  1. ループを使用した実装:

    function insertionSort($arr) {
    $n = count($arr);
    for ($i = 1; $i < $n; $i++) {
       $key = $arr[$i];
       $j = $i - 1;
       while ($j >= 0 && $arr[$j] > $key) {
           $arr[$j + 1] = $arr[$j];
           $j--;
       }
       $arr[$j + 1] = $key;
    }
    return $arr;
    }
    $numbers = [4, 2, 7, 1, 3];
    $sortedNumbers = insertionSort($numbers);
    print_r($sortedNumbers);
  2. 再帰を使用した実装:

    function recursiveInsertionSort($arr, $n) {
    if ($n <= 1) {
       return $arr;
    }
    recursiveInsertionSort($arr, $n - 1);
    $last = $arr[$n - 1];
    $j = $n - 2;
    while ($j >= 0 && $arr[$j] > $last) {
       $arr[$j + 1] = $arr[$j];
       $j--;
    }
    $arr[$j + 1] = $last;
    return $arr;
    }
    $numbers = [4, 2, 7, 1, 3];
    $sortedNumbers = recursiveInsertionSort($numbers, count($numbers));
    print_r($sortedNumbers);

これらのコード例では、与えられた数値配列を挿入ソートによって昇順に並び替えます。返されるソート済みの配列をprint_r関数を使用して出力しています。

挿入ソートは一般的にデータの量が小さい場合に効果的ですが、大量のデータに対しては効率が低下する傾向があります。より大規模なデータセットに対しては、他の効率的なソートアルゴリズムを検討することをおすすめします。

このブログ投稿では、PHPでの挿入ソートの実装方法とその効率について説明しました。