我的算法比 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;
}
}
- 1 回答
- 0 关注
- 79 浏览
添加回答
举报
0/150
提交
取消