这个算法比php sort()更快吗?

这个算法比php sort()更快吗?,php,Php,我的算法比php sort()快吗 算法: $a=数组(0,3,4,2,7,6,6,8,6,1); $z=计数($a)-1; 对于($i=0;$ia[$i+1]){ $temp=$a[$i]; $a[$i]=$a[$i+1]; $a[$i+1]=$temp; $i=-1; } } 回声“; 印刷费($a); 回声“; 与php sort()比较。。。请告诉我您的结果,因为我的互联网不好…正如中所指出的,内置的排序算法是。快速排序的平均性能为O(n logn) 您的算法类似于。其平均性能为

我的算法比php sort()快吗

算法:

$a=数组(0,3,4,2,7,6,6,8,6,1);
$z=计数($a)-1;
对于($i=0;$i<$z;$i++){
如果($a[$i]>a[$i+1]){
$temp=$a[$i];
$a[$i]=$a[$i+1];
$a[$i+1]=$temp;
$i=-1;
}   
}
回声“;
印刷费($a);
回声“;
与php sort()比较。。。请告诉我您的结果,因为我的互联网不好…

正如中所指出的,内置的排序算法是。快速排序的平均性能为O(n logn)

您的算法类似于。其平均性能为O(n2)。但由于代码在每次交换后都会回到开头,这是不必要的,所以它甚至比冒泡排序更糟糕

对于大型阵列,快速排序将比气泡排序快得多

另外,
sort()
函数是用C代码实现的,C代码被编译成机器代码。使用用PHP编写的排序算法将增加PHP解释器的额外开销

您还有许多不必要的数组
$i
$z
,它们应该只是普通变量

$a=数组(0,3,4,2,7,6,6,8,6,1);
$z=计数($a)-1;
对于($i=0;$i<$z;$i++){
如果($a[$i]>a[$i+1]){
$temp=$a[$i];
$a[$i]=$a[$i+1];
$a[$i+1]=$temp;
$i=-1;
}   
}

不,不是。在这里,人们不会将您的代码与本机PHP方法进行比较并给出结果。为什么
$i
是一个数组?除了
$i[0]
之外,您永远不会使用任何东西。当然,解释的PHP代码总是比优化和编译的C二进制代码快。您的算法看起来像。@alin100尝试对一个包含一百万个元素的数组进行排序,看看它们之间的比较。感谢您看到我对其进行了更改…在气泡排序中,我注意到它不会重置,一旦您切换2值,它将转到数组的末尾。。。在我的代码中,当您切换/翻转值时,它会返回到0并重新开始。。。这是冒泡排序的一种变体……这可能会使您的算法变得更糟,因为不必从头开始。谁知道有一天我们可能会发现它的用处:)
        $a = array(0,3,4,2,7,6,6,8,6,1);
        $z = count($a)-1;
        for($i = 0;$i < $z; $i++){
           if($a[$i] > $a[$i+1]){
              $temp = $a[$i];
              $a[$i] = $a[$i+1];
              $a[$i+1] = $temp;
              $i = -1;
           }   
        }
        echo "<pre>";
        print_r($a);
        echo "</pre>";
$a = array(0,3,4,2,7,6,6,8,6,1);
$z = count($a)-1;
for($i = 0;$i < $z; $i++){
    if($a[$i] > $a[$i+1]){
        $temp = $a[$i];
        $a[$i] = $a[$i+1];
        $a[$i+1] = $temp;
        $i = -1;
    }   
}