[Python-es] Buscar índices de un array (que cumple condición) de forma eficiente

Pablo Angulo pablo.angulo en uam.es
Jue Mar 4 14:15:35 CET 2010


Daniel Garcia Moreno escribió:
>
>> Si la lista grande tiene N elementos y la pequeña M, puedes elegir entre
>> O(Mlog(N)), usando bisect. o O(N), con la técnica que te decía antes.
>>     
> O puedes combinar las dos, buscar desde el último indice en adelante
> pero hacerlo con busqueda binaria.
Yo diría que ésto es también es O(M log(N)) en el peor caso (cuando el
subconjunto son los M primeros valores de conjunto)

log(N)+log(N-1)+...+log(N-M)=O(M log(N))



Más información sobre la lista de distribución Python-es