PHP快速排序
直接快速排序非常简单 , 是冒泡排序的一种改进 , 是首个时间复杂度达到 O(nlogn) 的算法 , 最坏时间复杂度仍然是 O(n^2) , 它亦是 21 世纪十大最伟大的算法之一 .
快速排序有三种 , 分别是平衡快排 , 外部快排和三路基数快排 , 我就不分别一一介绍了 , 有兴趣的盆友可以看这里 .
直接上 PHP 的直接快排序代码
function quickSort($a) { if(count($a)<=1) return $a; $l = $r = array(); $n = array_shift($a); foreach($a as $v) $v<$n?array_push($l, $v): array_push($r, $v); return array_merge(quickSort($l), array($n), quickSort($r)); }
用法 :
echo(implode(",", quickSort($a)));// $a 是一个无序数组 , 例如 $a = range(1, 100); shuffle($a);
嘿嘿 , 有更好的思想欢迎评论
本文出自 “一个纠结的PHP程序员” 博客,请务必保留此出处http://johnsylm.blog.51cto.com/1480623/1429380
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。