pseudocodigo - Acerca del método de ordenación incorporado de Python
ordenamiento por seleccion java (3)
¡Por supuesto! El código está here , comenzando con la función islt
y procediendo por islt
tiempo ;-). Como sugiere el comentario de Chris, es código C. También querrá leer this archivo de texto para obtener una explicación textual, resultados, etc., etc.
Si prefieres leer el código Java que el código C, puedes ver la implementación de Josh Bloch de timsort en y para Java (Joshua también es el tipo que implementó, en 1997, el mergesort modificado que todavía se usa en Java, y se puede esperar que Java lo haga). eventualmente cambiar a su puerto reciente de timsort).
Aquí hay alguna explicación del puerto Java de timsort, el diff está here (con punteros a todos los archivos necesarios), el archivo de clave está here - FWIW, mientras soy un mejor programador C que un programador Java, en este caso encuentro El código Java de Joshua es más legible que el código C de Tim ;-).
¿Qué algoritmo está construido en el método sort()
en Python? ¿Es posible echarle un vistazo al código de ese método?
En las primeras versiones de python, la función de ordenación implementó una versión modificada de quicksort. Sin embargo, se consideró inestable y a partir de 2.3 cambiaron a usar un algoritmo mergesort adaptativo.
Solo quería proporcionar un enlace muy útil que eché de menos en la respuesta de Alex, que de otro modo sería exhaustiva: una explicación de alto nivel del timsort de Python (¡con visualizaciones gráficas!).
(Sí, el algoritmo se conoce básicamente como Timsort ahora)