PHPのクイックソートアルゴリズムのコードの書き方はどうですか?

以下は、クイックソートを実装したPHPの簡単なコード例です:

function quickSort($array) {
    // 如果数组长度小于等于1,则直接返回
    if (count($array) <= 1) {
        return $array;
    }
    
    // 选择一个基准值
    $pivot = $array[0];
    
    // 初始化左右子数组
    $left = [];
    $right = [];
    
    // 将比基准值小的元素放在左子数组,比基准值大的元素放在右子数组
    for ($i = 1; $i < count($array); $i++) {
        if ($array[$i] < $pivot) {
            $left[] = $array[$i];
        } else {
            $right[] = $array[$i];
        }
    }
    
    // 递归地对左右子数组进行快速排序,并合并结果
    return array_merge(quickSort($left), [$pivot], quickSort($right));
}

// 测试代码
$array = [5, 2, 9, 1, 7, 6, 3];
$sortedArray = quickSort($array);
print_r($sortedArray);

このコードは、クイックソートアルゴリズムを再帰的に実装するquickSortという関数を定義しています。まず、関数は入力配列の長さが1以下かどうかを判断し、その場合は直ちに返します。その後、配列の最初の要素をピボット値として選択します。次に、関数はピボット値よりも小さい要素を左部分配列に、ピボット値よりも大きい要素を右部分配列に配置します。最後に、左右の部分配列を再帰的にクイックソートし、結果をマージして返します。

テストコードでは、ランダムな数値を持つ配列を定義し、その後、quickSort関数を使用して配列をソートし、ソート後の結果を表示します。

bannerAds