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関数を使用して配列をソートし、ソート後の結果を表示します。