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

PHP快速排序,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。