冒泡排序数组,我怎样才能使这个php冒泡排序代码更好或更有效?

sha*_*yne 2 php

如何让这个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)

Asu*_*sur 5

算法是算法,如果你进行一些修改并获得更好的性能,你将不再使用冒泡排序算法,因为它会发生变化.

如果您想要提高性能,则需要更改算法,快速排序通常被认为是最佳排序算法.作为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排序都记录在哪里.

希望这对你有所帮助!

  • @baboizk是的当然,它总是取决于情况,这就是为什么我说_generally_,如果你优化它(正常情况下)你将基于该算法的代码而不是使泡泡算法更好,正如我所看到的,但你有一个观点. (3认同)