theta son pequeña omega notación notacion norteamericanos norteamericano momento minutos mejores mas los listas hollywood grande gran famosos ejercicios directores cuales cineasta cine big asintotico asintotica aritmetica analisis algoritmos c big-o time-complexity

son - Big-O pequeña aclaración



notación ω(n) (4)

El tiempo consumido por los algoritmos O (log n) depende solo linealmente del número de dígitos de n. Por eso es muy fácil escalarlo.

Digamos que quiere calcular F (100000000), el número 10 ^ 8th F .... ascci. Para un algoritmo O (log n) solo tomará 4 veces el tiempo consumido al calcular F (100).

Los términos O (log log n) pueden aparecer en una variedad de lugares diferentes, pero normalmente hay dos rutas principales que llegarán a este tiempo de ejecución. Enlace de referencia ingrese el código aquí here .

¿Es O(log(log(n))) realidad solo O(log(n)) cuando se trata de complejidad de tiempo?
¿Está de acuerdo en que esta función g() tiene una complejidad de tiempo de O(log(log(n))) ?

int f(int n) { if (n <= 1) return 0; return f(n/2) + 1; } int g(int n) { int m = f(f(n)); int i; int x = 0; for (i = 0; i < m; i++) { x += i * i; } return m; }


Parece que es log(n) + log(log n) + log(log n) .

En orden: la primera recursión de f() , más la segunda recursión de f() y el bucle for, por lo que la complejidad final es O (log n), porque los términos de orden inferior se ignoran.


la función f(n) calcula el logaritmo en la base 2 de n dividiendo repetidamente por 2 . Se itera log 2 (n) veces.

Si lo llama en su propio resultado, de hecho devolverá el registro 2 (registro 2 (n)) para un registro adicional 2 (registro 2 (n)) iteraciones. Hasta el momento, la complejidad es O (log (N)) + O (log (log (N)) . El primer término domina al segundo, la complejidad general es O (log (N)) .

El bucle final itera log 2 (log 2 (n)) veces, la complejidad del tiempo de esta última fase es O (log (log (N)) , insignificante frente a la fase inicial.

Tenga en cuenta que como x no se usa antes del final de la función g , no es necesario computarlo y el compilador puede optimizar este bucle a la nada.

La complejidad global del tiempo sale como O (log (N)) , que no es lo mismo que O (log (log (N))).


int f(int n) { if (n<=1) return 0; return f(n/2) + 1; }

Tiene complejidad de tiempo de orden O(log2(n)) . Aquí 2 es la base de logrithm.

int g(int n) { int m = f(f(n)); // O(log2(log2(n)) int i, x=0; for( i = 0; i < m; i++) { x += i*i; } // This for loop will take O(log2(log2(n)) return m; }

Por lo tanto, la complejidad global del tiempo de una función dada es: T(n) = t1 + t2 + t3

Pero aquí O(log2(n)) domina sobre O(log2(log2(n)) .

Por lo tanto, la complejidad del tiempo de una función dada es log2(n) .

Por favor, lea ¿Qué es una explicación simple en inglés de la notación "O grande"? una vez.