PHP快速排序算法

Posted 全栈开发爱好者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP快速排序算法相关的知识,希望对你有一定的参考价值。


重要思想:
分而治之和递归思想

原理:
1:  选择一个基准值
2:  将数组分成两个子数组:  小于基准值的元素和大于基准值的元素
3:  利用递归对两个子数组进行快速排序
4:  合并三个数组

(注意:当子数组个数小于2时,终止递归直接返回子数组)

<?phpfunction 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快速排序算法的主要内容,如果未能解决你的问题,请参考以下文章

php 四种基础算法 ---- 快速排序法

算法PHP实现冒泡排序和快速排序--防遗忘

PHP 快速排序

快速排序的php实现

PHP实现快速排序

php四种基础算法:冒泡,选择,插入和快速排序法PHP基础教程