2012-08-25 5 views
6

Zuerst habe ich einen Link zu Code geben werde: http://ideone.com/6k8R6

Auf meinem Intel Core 2 Duo, PHP 5.4.6 Ergebnis:
usort: 7.8763520717621
quicksort: 2.9220938682556
(usort ist langsamer als quicksort)

Aber auf Ideone Ergebnis ist:
usort: 0.0313699245453
quicksort: 0.0621209144592
(usort ist schneller als quicksort)

Ich habe auch Code auf meinem Freund Computer (Intel Core i5, PHP 5.4.4) überprüft, und usort war auch schneller.

Meine Frage ist: Warum manchmal Quicksort ist schneller als Usort und manchmal Usort ist schneller?PHP usort Geschwindigkeit

+0

Ich vermute, es liegt daran, dass Sie eine sehr kleine Datenmenge auf IDEONE verwenden und QuickSort in reinem PHP implementiert haben, während usort eine Bibliotheksfunktion ist. –

+0

Ich glaube, das ist eigentlich auf der CPU aufgrund der Parallelisierung basiert, ich erinnere mich irgendwo etwas darüber zu lesen .... hmmm, ich denke, es war eigentlich Wikipedia: http://en.wikipedia.org/wiki/Quicksort aber mein Kopf Würde Agian verletzen, das durch zu lesen. – Sammaye

+0

Um hinzuzufügen - Ihr Datensatz besteht aus vier Elementen. Das ist noch nicht genug um Quicksort richtig zu demonstrieren! – duskwuff

Antwort

1

Quicksort gilt als einer der schnellsten Sortieralgorithmen für unsortierte Daten und der langsamste für bereits sortierte (oder fast sortierte) Daten.

+0

Code war der gleiche auf jedem Computer und Funktion 'set ($ uzykownik);' verwendet, um Array vor jeder Sortierung auf unsortierten Zustand zu setzen (ich entschuldige mich für grammatikalische Fehler, aber ich komme aus Polen und es ist ziemlich spät für mich;)). –