Me gustaría obtener los 100 elementos más grandes de una lista de al menos 100000000 números.¿Cómo sacar los números más grandes de una gran cantidad de números?
Pude ordenar toda la lista y solo tomar los últimos 100 elementos de la lista ordenada, pero eso sería muy costoso en términos de memoria y tiempo.
¿Existe alguna forma fácil y pitónica de hacer esto?
Lo que quiero es seguir la función en lugar de una clasificación pura. En realidad, no quiero perder el tiempo para ordenar los elementos que no me importan.
Por ejemplo, esta es la función que me gustaría tener:
getSortedElements(100, lambda x,y:cmp(x,y))
Nota este requisito es sólo para la perspectiva del rendimiento.
Ahí tienes. Estaba a punto de sugerir que una cola de prioridad sería una buena forma de manejar esto junto con el algoritmo que sugerí. Al no ser un programador de Python, no me di cuenta de que ya estaba disponible. – tvanfosson