Cita de: ghastlyX en 2 Noviembre 2010, 16:06 PMCita de: piou en 2 Noviembre 2010, 15:55 PM
Es bastante simple, para cada numero mira si los siguientes son menores, en el caso de que lo sean, llama a la función que los cambia, es una manera eficiente de ordenar una lista. Por ahí te han dejado un link a la wikipedia que lo explica bastante bien.
No es una forma nada eficiente de ordenar el algoritmo de ordenación por selección. Lo que sucede es que es muy simple y por eso es de los primeros algoritmos que se enseñan. Este algoritmo tiene un coste de O(n2), mientras que otros algoritmos de ordenación como heap sort, merge sort o quicksort tienen costes O(nlogn) (quicksort en caso peor es cuadrático, pero en caso medio tiene esa complejidad). De los algoritmos cuadráticos típicos (selection sort, bubble sort e insertion sort), el único que sirve es insertion sort, porque aunque sea cuadrático en caso peor, generalmente es algo mejor y para entradas pequeñas es más rápido que los que he dicho antes.
La sencillez no es una manera de eficiencia? Je je, tienes razón, pero para casos en los que la lista es pequeña, yo prefiero usar un algoritmo pequeño como este que tampoco supone un gaste de rendimiento demasiado perceptible y es más fácil de implementar.