Es una especie de selección de un algoritmo eficiente?
Pregunta
Sé que es un algoritmo de tiempo cuadrática, pero ¿cómo se compara con otros algoritmos de clasificación, como Ordenación rápida o la ordenación de burbuja?
Solución
Clasificación general varían en función de la naturaleza de los datos que tiene.
Sin embargo, mientras que la ordenación de burbuja y ordenación por selección son fáciles de entender (y aplicar) algoritmos de ordenación de su tiempo de ejecución es O (n ^ 2) es decir el peor momento que pueda conseguir posiblemente.
En cuanto a tipo rápida se refiere en una avergage que se necesita O (n log n) tiempo por lo tanto es un excelente tipo. Sin embargo, también puede tomar O (n ^ 2) en ciertos casos.
Otros consejos
algoritmos de tiempo cuadráticas, dependiendo del tamaño de su conjunto de datos, pueden ser increíblemente lento.
n = 10e78 (sobre el número de átomos en el universo)
Para un algoritmo cuadrático, eso es n * (10e78). Para un n log (n) algoritmo, al igual que la clasificación rápida o mergesort, eso es n * 262. Esa es una gran diferencia.
Pero si el conjunto de datos es relativamente pequeña (<1000 elementos, por ejemplo), entonces la diferencia de rendimiento probablemente no va a ser notable (a menos que, tal vez, la especie que se está haciendo en varias ocasiones). En estos casos es mejor usar el algoritmo más simple, y optimizar posteriormente si resulta ser demasiado lento.
"La optimización prematura es la raíz de todo mal". -Sir, Tony Hoare, popularizado por Donald Knuth
Wikipedia sabe todo.
Selección de tipo más o menos chupa.
Si los datos que tiene compone de sólo números enteros positivos es posible que desee mirar a Cubo Ordenar. El algoritmo puede tener un tiempo de funcionamiento O lineal (n) en las condiciones adecuadas.