为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
holdtom 2023-09-15 14:33:02
我的算法比 php sort() 更快吗?某物:        $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>";与 php sort() 比较...让我知道你的结果,因为我的网络不好...
查看完整描述

1 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

正如PHP 使用什么排序算法?,内置的排序算法是Quicksort。快速排序的平均性能为 O(n log n)。

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

对于大型数组,快速排序将比冒泡排序快得多。

此外,该sort()函数是用 C 代码实现的,该代码被编译为机器代码。使用 PHP 编写的排序算法会给 PHP 解释器带来额外的开销。

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

$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;

    }   

}


查看完整回答
反对 回复 2023-09-15
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信