快速排序-PHP
$arr = array(4,2,5,1,3);
// 快速排序 function quickSort($arr) { $len = count($arr); if ($len <= 1) { // 是否继续进行 return $arr; } $mid = $arr[0]; // 以第一个元素为基准 $leftArray = $rightArray = []; // 初始化 for ($i=1; $i<$len; $i++) { // 便利所有元素 if ($arr[$i] < $mid) { // 若当前元素小于基准元素则放在左边,否则放右边 $leftArray[] = $arr[$i]; } else { $rightArray[] = $arr[$i]; } } $leftArray = quickSort($leftArray); // 左侧数组递归循环 $rightArray = quickSort($rightArray); // 右侧数组递归循环 return array_merge($leftArray, array($mid), $rightArray); //合并 } $res = quickSort($arr); print_r($res);
打印结果:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)