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);


嘿嘿 , 有更好的思想欢迎评论

你可能感兴趣的:(数据结构,算法,冒泡排序,快速排序)