快速排序(Quicksort)是对冒泡排序算法的一种改进。
快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
<?php
$minutesShaft = ["45","33","58","130","66","52","119","41", "46", "42","128", "141", "178","223"];
function quickSort ($arr) {
$num = count($arr);
$base = $arr[0];
$left = $right = [];
for ($i = 1; $i < $num; $i++) {
if ($arr[$i] >= $base) {
$right[] = $arr[$i];
} else {
$left[] = $arr[$i];
}
}
if (!empty($left)) {
$left = quickSort($left);
}
if (!empty($right)) {
$right = quickSort($right);
}
$arr = array_merge($left, $right);
return $arr;
}
var_dump(quickSort($minutesShaft));