我的算法比 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 關注
- 105 瀏覽
添加回答
舉報
0/150
提交
取消