快速排序
原理
- 快速排序是对冒泡排序的一种改进。
- 通过一趟排序将待排序分割成独立的两部分,其中一部分的关键字均比另一部分的关键字小,则可分别对这两部分继续进行快速排序,整个排序过程可以递归进行,以达到整个有序的目的。
快速排序从数据列中挑出一个数作为基准元素,然后循环所有数,和基准数进行比较分为左右两列,然后重复这样的步骤继续划分为左右两列。
PHP实现
/**
* @param array $arr
* @return array
*/
function quick_sort($arr)
{
if (!is_array($arr) || empty($arr)) {
return $arr;
}
$len = count($arr);
if ($len === 1) {
return $len;
}
$left = $right = [];
for ($i = 1; $i < $len; $i++) {
if ($arr[$i] > $ar[0]) {
$right[] = $arr[$i];
} else {
$left = $arr[$i];
}
}
$left = quick_sort($left);
$right = quick_sort($right);
return array_merge($left, [$arr[0]], $right);
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
能运行?
看不懂,写的不对吧