以下是一個(gè)使用PHP實(shí)現(xiàn)快速排序算法的示例:
function quickSort($arr) {
// 如果數(shù)組只有一個(gè)元素或?yàn)榭眨苯臃祷?/span>
if (count($arr) <= 1) {
return $arr;
}
// 選擇一個(gè)基準(zhǔn)元素
$pivot = $arr[0];
// 將數(shù)組分為左右兩個(gè)子數(shù)組
$left = [];
$right = [];
for ($i = 1; $i < count($arr); $i++) {
if ($arr[$i] < $pivot) {
$left[] = $arr[$i];
} else {
$right[] = $arr[$i];
}
}
// 遞歸地對(duì)左右子數(shù)組進(jìn)行排序
$left = quickSort($left);
$right = quickSort($right);
// 合并左右子數(shù)組和基準(zhǔn)元素
return array_merge($left, [$pivot], $right);
}
// 測(cè)試示例
$arr = [5, 1, 8, 2, 9, 3];
$sortedArr = quickSort($arr);
print_r($sortedArr);
運(yùn)行以上代碼,將輸出 [1, 2, 3, 5, 8, 9]
,表示排序成功??焖倥判蛩惴ǖ幕舅枷胧峭ㄟ^(guò)分治法將數(shù)組分為兩個(gè)子數(shù)組,然后遞歸地對(duì)子數(shù)組進(jìn)行排序,最后合并子數(shù)組和基準(zhǔn)元素。在上述代碼中,我們選擇數(shù)組的第一個(gè)元素作為基準(zhǔn)元素,并將小于基準(zhǔn)元素的元素放在左子數(shù)組,大于基準(zhǔn)元素的元素放在右子數(shù)組,然后遞歸地對(duì)左右子數(shù)組進(jìn)行排序,最后將左子數(shù)組、基準(zhǔn)元素和右子數(shù)組合并起來(lái)。