直接快速排序非常简单 , 是冒泡排序的一种改进 , 是首个时间复杂度达到 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);
嘿嘿 , 有更好的思想欢迎评论
时间: 2024-10-11 13:07:46