function quickSort($arr) {
// 基线条件:如果数组为空或只有一个元素,直接返回
$length = count($arr);
if ($length <= 1) {
return $arr;
}
// 选择一个基准元素
$pivot = $arr[0];
$left = $right = array();
// 将数组分为左右两个子数组
for ($i = 1; $i < $length; $i++) {
if ($arr[$i] < $pivot) {
$left[] = $arr[$i];
} else {
$right[] = $arr[$i];
}
}
// 递归地对左右子数组进行快速排序
$left = quickSort($left);
$right = quickSort($right);
// 合并左右子数组和基准元素
return array_merge($left, array($pivot), $right);
}
// 示例用法
$unsortedArray = array(5, 9, 2, 6, 1, 8, 3, 7);
$sortedArray = quickSort($unsortedArray);
echo "Sorted Array: ";
foreach ($sortedArray as $element) {
echo $element . " ";
}