快速排序是一種基于分治思想的排序算法,可以用PHP實(shí)現(xiàn)如下:
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
函數(shù)實(shí)現(xiàn)了快速排序算法。首先判斷數(shù)組長(zhǎng)度是否小于等于1,如果是則直接返回?cái)?shù)組。然后選擇一個(gè)基準(zhǔn)值(pivot),將小于基準(zhǔn)值的元素放在左邊,大于等于基準(zhǔn)值的元素放在右邊,再遞歸地對(duì)左右兩部分?jǐn)?shù)組進(jìn)行排序,最后合并左右兩部分?jǐn)?shù)組并返回排序后的結(jié)果。