如何让这个php冒泡排序代码更好或更有效?
// bubble sort for $AR
for($i = count($AR)-1 ; $i <= 1; $i--)
for($j = 0; $j < $i; $j++) {
if($AR[$j] > $AR[$j+1]) {
$t = $AR[$j];
$AR[$j] = $AR[$j+1];
$AR[$j+1] = $t;
} //if
} //for j
Run Code Online (Sandbox Code Playgroud)
算法是算法,如果你进行一些修改并获得更好的性能,你将不再使用冒泡排序算法,因为它会发生变化.
如果您想要提高性能,则需要更改算法,快速排序通常被认为是最佳排序算法.作为php中的实现示例:
// QuickSort Algorithm function
function quickSort(array $array) {
if (count($array) == 0) {
return $array;
}
$pivot = $array[0];
$left = $right = array();
for($i = 1; $i < count($array); $i ++) {
if ($array[$i] < $pivot) {
$left[] = $array[$i];
} else {
$right[] = $array[$i];
}
}
return array_merge(quickSort($left), array(
$pivot
), quickSort($right));
}
Run Code Online (Sandbox Code Playgroud)
当然,它总是取决于情况,如果你优化它,你将基于该算法的代码,但不是使泡沫算法更好或更有效.
查看这篇文章,几乎所有类型的PHP排序都记录在哪里.
希望这对你有所帮助!