快速排序算法
<?php
$arr = [44,1,4,6,94,52,5,42,24,2];
/**
* [quick_sort 快速排序]
* @param [array] $arr
* @return [array] $arr
*/
function quick_sort($arr){
$length = count($arr);
//判断是否需要排序
if (!($length > 1)) {
return $arr;
}
//设置中间值、左边数组、右边数组
$base = $arr[0];
$bigArr = [];
$smallArr = [];
for ($i=1; $i < $length; $i++) {
if ($base > $arr[$i] ) {
$smallArr[] = $arr[$i];
}else{
$bigArr[] = $arr[$i];
}
}
//递归调用
$smallArr = quick_sort($smallArr);
$bigArr = quick_sort($bigArr);
return array_merge($smallArr,array($base),$bigArr);
}
$arrData = quick_sort($arr);
echo '<pre>';
print_r($arrData);
echo '</pre>';
?>