Esta es una pregunta de código de golf.
Entrada
Una lista de enteros no negativos en cualquier formato que sea más conveniente.
Salida
La misma lista en orden ordenado en el formato que sea más conveniente.
Restricción
- Su código debe ejecutarse en tiempo O (n log n) en el peor de los casos, donde
n
está el número de enteros en la entrada. Esto significa que la selección rápida aleatoria está fuera, por ejemplo. Sin embargo, hay muchas otras opciones para elegir. - No utilice ninguna biblioteca de clasificación / función / similar. Tampoco use nada que haga la mayor parte del trabajo de clasificación para usted, como una biblioteca de montón. Básicamente, lo que implemente, impleméntelo desde cero.
Puede definir una función si lo desea, pero luego muestre un ejemplo en un programa completo que realmente funcione. Debe ejecutarse con éxito y rápidamente en todos los casos de prueba a continuación.
Casos de prueba
In: [9, 8, 3, 2, 4, 6, 5, 1, 7, 0]
Out:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In: [72, 59, 95, 68, 84]
Out:[59, 68, 72, 84, 95]
In: [2, 2, 1, 9, 3, 7, 4, 1, 6, 7]
Out:[1, 1, 2, 2, 3, 4, 6, 7, 7, 9]
In: [2397725, 1925225, 3304534, 7806949, 4487711, 8337622, 2276714, 3088926, 4274324, 667269]
Out:[667269,1925225, 2276714, 2397725,3088926, 3304534, 4274324, 4487711, 7806949, 8337622]
Tus respuestas
Indique el algoritmo de clasificación que ha implementado y la longitud de su solución en el título de su respuesta.
Algoritmos de clasificación de tiempo O (n log n)
Existen muchos algoritmos de tiempo O (n log n) en existencia. Esta tabla tiene una lista de algunos de ellos.
intersect
viene bajo "similar" si ordena automáticamente la matriz. Si elimina duplicados, dará el resultado incorrecto.
intersect
ordenar automáticamente la matriz. Supongo que también quieres descartarlos. ¿Qué talunique
(eliminar duplicados, ordena el resultado)?