2009/12/12 Matias Graña <matias.alejo@???>:
> Hola, gente
> Tengo una lista de N elementos, de la que quiero extraer los n más
> chicos. Una opción es ordenarla y quedarme con el slice [:n]. Pero
> resulta que N es mucho más grande que n (digamos n=10, N=1.000.000)
> así que esto es ineficiente. Se puede hacer en N.log(n), en lugar de
> N.log(N) que sale de ordenarlos todos. El punto es: hay alguna
> librería que haga esto? Si lo tengo que programar yo, quizás sea más
> eficiente ordenarlos todos (que se hace en C en lugar de ser Python
> interpretado).
>
> Gracias,
> -- Matías Graña
Eso es un cuello de botella en tu programa o estás haciendo
optimización prematura porque es divertido?
2009/12/12 Facundo Batista <facundobatista@???>:
>>>> import heapq
>>>> heapq.nsmallest(2, [1, 4, 55, 65, 7, 3])
> [1, 3]
Crear un heap con n elementos no es O(n.log(n))?
Saludos,
Pablo
---------------------------------------------------------------------
Para dar de baja la suscripcion, mande un mensaje a:
pyar-unsubscribe@???
Para obtener el resto de direcciones-comando, mande un mensaje a:
pyar-help@???
PyAr - Python Argentina - Sitio web:
http://www.python.com.ar/