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
6
A
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;)). –
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. –
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
Um hinzuzufügen - Ihr Datensatz besteht aus vier Elementen. Das ist noch nicht genug um Quicksort richtig zu demonstrieren! – duskwuff