2012-08-25 12 views
6

En un primer momento, voy a dar un enlace al código: http://ideone.com/6k8R6

En mi Intel Core 2 Duo, PHP 5.4.6 resultado es:
usort: 7.8763520717621
quicksort: 2.9220938682556
(usort es más lento que quicksort)

Pero el resultado es Ideone:
usort: 0.0313699245453
quicksort: 0.0621209144592
(usort es más rápido que quicksort)

También he comprobado el código en la computadora de mi amigo (Intel Core i5, PHP 5.4.4), y usort también fue más rápido.

Mi pregunta es: ¿por qué a veces el quicksort es más rápido que el usort y algunas veces usort es más rápido?PHP velocidad usort

+0

Sospecho que es porque está utilizando un conjunto de datos realmente pequeño en ideone y que ha implementado quicksort en PHP puro, mientras que usort es una función de biblioteca. –

+0

Creo que esto se basa realmente en la CPU debido a la paralelización, recuerdo haber leído algo sobre esto en alguna parte ... mmm, creo que en realidad era wikipedia: http://en.wikipedia.org/wiki/Quicksort pero mi cabeza lastimaría a un agian para leer eso a través. – Sammaye

+0

Para agregar a eso, su conjunto de datos consta de cuatro elementos. ¡Eso ni siquiera es suficiente para demostrar adecuadamente el quicksort! – duskwuff

Respuesta

1

Quicksort se considera uno de los algoritmos de clasificación más rápidos en datos sin clasificar, y el más lento en datos ya ordenados (o casi ordenados).

+0

El código era el mismo en cada computadora y funcionaba 'set ($ uzytkownik);' utilizado para establecer el array en el estado sin ordenar antes de cada clasificación (me disculpo por cualquier error gramatical, pero soy de Polonia y es bastante tarde para mí;)) –