<?php
$arr = [1,10,25,3,55,4,6,9,2,13,7,11];
sort($arr);
echo "原数组使用sort函数排序后的结果:<br>";
echo "<pre>";
print_r($arr);
echo "</pre>";
echo "<hr>";
function quick_sort($arr){
if (!is_array($arr)) {
return false;
}
if (count($arr) <= 1) {
return $arr;
}
$left_arr = [];
$right_arr = [];
$median = $arr[0];
// 数字从低到高排列,如果需要从高到低将条件反过来就可以了
foreach ($arr as $k => $v) {
// 排除中间值与自身的比较
if ($k == 0) {
continue;
}
// 如果值小于等于中间值,则向左数组合并,否则向右数组合并
if ($v <= $median) {
$left_arr[] = $v;
} else {
$right_arr[] = $v;
}
}
$left_arr = quick_sort($left_arr);
$right_arr = quick_sort($right_arr);
return array_merge($left_arr, [$median], $right_arr);
}
$after_arr = quick_sort($arr);
echo "原数组使用快速排序后的结果:<br>";
echo '<pre>';
print_r($after_arr);
echo '</pre>';