2012-08-25 70 views
6

起初,我給的鏈接代碼:http://ideone.com/6k8R6

在我的英特爾Core 2 Duo,PHP 5.4.6結果是:
usort: 7.8763520717621
quicksort: 2.9220938682556
usort慢於quicksort

但在Ideone結果是:
usort: 0.0313699245453
quicksort: 0.0621209144592
usort快於quicksort

我也在朋友的電腦上檢查了代碼(Intel Core i5,PHP 5.4.4),usort也更快。

我的問題是:爲什麼有時quicksort比usort更快,有時usort更快?PHP usort速度

+0

我懷疑這是因爲你在ideone上使用了一個非常小的數據集,並且你已經在純PHP中實現了quicksort,而usort是一個庫函數。 –

+0

我相信這實際上是基於並行化的CPU,我記得在某處讀到一些東西......嗯,我認爲它實際上是維基百科:http://en.wikipedia.org/wiki/Quicksort但我的頭會傷害到安吉爾通過閱讀。 – Sammaye

+0

要添加到 - 你的數據集是四個項目。這甚至不足以正確顯示quicksort! – duskwuff

回答

1

Quicksort被認爲是未排序數據上最快的排序算法之一,也是已排序(或接近排序)數據上最慢的排序算法之一。

+0

代碼在每臺計算機和函數set($ uzytkownik)上都是一樣的;在每次排序前用於將數組設置爲未排序狀態(我爲任何語法錯誤道歉,但我來自波蘭,對我來說已經很晚了); )。 –