快速排序是一种基于分治思想的排序算法,可以用PHP实现如下:
function quickSort($arr) {
$length = count($arr);
if ($length <= 1) {
return $arr;
}
$pivot_key = floor($length / 2);
$pivot = $arr[$pivot_key];
$left = $right = [];
foreach ($arr as $key => $value) {
if ($key == $pivot_key) {
continue;
}
if ($value < $pivot) {
$left[] = $value;
} else {
$right[] = $value;
}
}
return array_merge(quickSort($left), [$pivot], quickSort($right));
}
$arr = [3, 6, 8, 10, 1, 2, 1];
$result = quickSort($arr);
var_dump($result);
在上面的代码中,quickSort
函数实现了快速排序算法。首先判断数组长度是否小于等于1,如果是则直接返回数组。然后选择一个基准值(pivot),将小于基准值的元素放在左边,大于等于基准值的元素放在右边,再递归地对左右两部分数组进行排序,最后合并左右两部分数组并返回排序后的结果。