Re: [pyar] orden parcial

Página superior
Adjuntos:
+ (text/plain)

Responder a este mensaje
Autor: Matias Graña
Fecha:  
A: pyar
Asunto: Re: [pyar] orden parcial
2009/12/12 Fede Martinez <federicoemartinez@???>:
> Si N es la cantidad de cosas que tenes, n las que queres sacar:
>
> El heap lo podes armar en O(N). Despues sacar el minimo te cuesta O(log(N)),
> como vas a sacar n veces el minimo, lo que te queda es un O(n*log(N))


Hasta donde entiendo, armar el heap es N.log(N). Pero igual tomar los
primeros n parece que está bien optimizado:

$ python -m timeit 'import random,heapq;
l=random.sample(xrange(100000000),1234567); m=sorted(l)[:10]'
10 loops, best of 3: 3.08 sec per loop

$ python -m timeit 'import random,heapq;
l=random.sample(xrange(100000000),1234567); m=heapq.nsmallest(10,l)'
10 loops, best of 3: 1.76 sec per loop

Matías

---------------------------------------------------------------------
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/