Articles of tiempo complejidad

complejidad de tiempo para un bucle

foo = [] i = 1 while i < n: foo= foo + ["a"] i*=2 ¿Cuál es la complejidad temporal de este código? Mi thoguht es: el bucle while registra (n) la iteración. Para cada iteración se crea una nueva lista. Entonces, la complejidad del tiempo total es: O (log ^ 2 (n)). Estoy en […]

Análisis de complejidad del filtro () con una función lambda.

Dadas dos listas, list1 y list2 list3 = filter(lambda x: x in list1,list2) Esto devuelve la intersección de las dos listas. ¿Cómo puedo encontrar la complejidad de este algoritmo? Descubrí que la complejidad del tiempo de x in list1 es O (n) donde n es el número de elementos en la lista, pero ¿qué hay […]

Complejidad de len () con respecto a conjuntos y listas

La complejidad de len() con respecto a conjuntos y listas es igualmente O (1). ¿Por qué lleva más tiempo procesar conjuntos? ~$ python -m timeit “a=[1,2,3,4,5,6,7,8,9,10];len(a)” 10000000 loops, best of 3: 0.168 usec per loop ~$ python -m timeit “a={1,2,3,4,5,6,7,8,9,10};len(a)” 1000000 loops, best of 3: 0.375 usec per loop ¿Está relacionado con el índice de […]

Complejidad temporal de una función recursiva con dos llamadas.

Considere este código: def count_7(lst): if len(lst) == 1: if lst[0] == 7: return 1 else: return 0 return count_7(lst[:len(lst)//2]) + count_7(lst[len(lst)//2:]) nota: las operaciones de corte serán consideradas como O (1). Entonces, mi inutación me dice que es O (n * logn), pero estoy luchando para demostrarlo científicamente. ¡Alégrate por ayuda!

¿Puede este código de Python ser más eficiente?

He escrito algún código para encontrar cuántas subcadenas de una cadena son pares de anagtwigs. La función para encontrar anagram(anagramSolution) es de complejidad O (N). La función de subcadena tiene una complejidad menor que N cuadrada. Pero, este código aquí es el problema. ¿Se puede optimizar más? for i in range(T): x = raw_input() alist […]

¿Cómo funciona heapq.nlargest?

Estaba mirando esta charla de Pycon, 34:30 y el orador dice que obtener los t elementos más grandes de una lista de n elementos se puede hacer en O(t + n) . ¿Cómo es eso posible? Mi entendimiento es que la creación del montón será O(n) , pero ¿cuál es la complejidad de nlargest sí […]

Encuentra subcadenas comunes entre dos cuerdas

Me gustaría comparar 2 cadenas y mantener el emparejamiento, separando donde falla la comparación. Así que si tengo 2 cuerdas – string1 = apples string2 = appleses answer = apples Otro ejemplo, ya que la cadena podría tener más de una palabra. string1 = apple pie available string2 = apple pies answer = apple pie […]

¿Cómo puedes hacer un perfil de un script de Python?

El proyecto Euler y otros concursos de encoding a menudo tienen un tiempo máximo de ejecución o la gente se jacta de la rapidez con la que se ejecuta su solución particular. Con python, a veces los enfoques son un tanto confusos, es decir, añadiendo un código de tiempo a __main__ . ¿Cuál es una […]