PHP快速排序算法
Posted 全栈开发爱好者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP快速排序算法相关的知识,希望对你有一定的参考价值。
重要思想:
分而治之和递归思想
原理:
1: 选择一个基准值
2: 将数组分成两个子数组: 小于基准值的元素和大于基准值的元素
3: 利用递归对两个子数组进行快速排序
4: 合并三个数组
(注意:当子数组个数小于2时,终止递归直接返回子数组)
function quickSort($arr){
if (count($arr) <= 1){
return $arr;
}
$middle = $arr[0];// 获取基准值
$count = count($arr);// 元素个数
$left = $right = [];
for($i=1;$i<count($arr);$i++){
if($arr[$i]<$middle){
//小于基准值
$left[] = $arr[$i];
}else{
//大于基准值
$right[] = $arr[$i];
}
}
//进行递归排序
$left = quickSort($left);
$right = quickSort($right);
//合并排序后的数据
return array_merge($left,[$middle],$right);
}
var_dump(quickSort([10,100,120,99,11,23,25,65,500,12,35,150]));
以上是关于PHP快速排序算法的主要内容,如果未能解决你的问题,请参考以下文章