亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

這個算法比 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 關注
  • 105 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號