十大排序算法-快速排序 PHP 實現

快排的核心就是切分,然後遞歸。

首先取一個要進行比較的值,一般用第一個就可以 $mid 。簡單易記。再初始化 2 個容器,$left, $right 分別存小值和大值,正序排。

然後進行數組遍歷,大於比較值的放 $right ,小於的放 $left。 再遞歸遍歷就可以了。

可以先想象用一個小數組輸入 [1,3,2],默唸運行一下程序

<code>function quickSort($arr)
{
if (count($arr) <= 1) {
return $arr;
}
$mid = $arr[0];
$left = $right = [];
for ($i = 1; $i < count($arr); $i++) {
if ($arr[$i] > $mid) {
$right[] = $arr[$i];
} else {
$left[] = $arr[$i];
}
}
$left = quickSort($left);
$right = quickSort($right);
return array_merge($left, [$mid], $right);
}/<code>


分享到:


相關文章: