Olemis Lang (Simelix) escribió: > Si no es O(1) entonces sospecho que en > > {{{ > #!python > > ultimo = -1 > for v in subconjunto: > ultimo = conjunto.index(v, ultimo+1) > yield ultimo > }}} > > hay un ciclo `for` explícito más un ciclo implícito `index`
No lo sospeches: tiene que haber un bucle para encontrar el índice, pero en cuanto encuentras el primer índice con ese valor, te sales del bucle. ¿Cuántas iteraciones haces del bucle en total? Bueno, puede que para algún caso particular hagan falta muchas iteraciones, pero la suma de todas las iteraciones no puede superar N: La primera iteración del bucle "for v in subconjunto", recorres desde 0 hasta indice[0], luego desde indice[1] hasta indice[2],... si sumas todas esas cantidades tienes: (indice[0] - 0) + (indice[1]-indice[0]) + ... + (indice[M-1] - indice[M-2]) = indice[M-1] < N _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/