Una pregunta sobre la complejidad del tiempo

¿Cuál es la complejidad temporal de la siguiente función fun()? Suponga que log(x) devuelve el valor de registro en base 2. 

C++

void fun()
{
    int i, j;
    for (i = 1; i <= n; i++)
        for (j = 1; j <= log(i); j++)
            cout << "GeeksforGeeks";
}
 
// This code is contributed by SHUBHAMSINGH10.

C

void fun()
{
    int i, j;
    for (i = 1; i <= n; i++)
        for (j = 1; j <= log(i); j++)
            printf("GeeksforGeeks");
}

Java

static void fun()
{
    int i, j;
    for (i = 1; i <= n; i++)
        for (j = 1; j <= log(i); j++)
            System.out.printf("GeeksforGeeks");
}
 
// This code is contributed by umadevi9616

Python3

import math
def fun():
    i = 0
    j = 0
    for i in range(1, n + 1):
        for j in range(1,math.log(i) + 1):
            print("GeeksforGeeks")
 
# This code is contributed by SHUBHAMSINGH10.

C#

static void fun()
{
    int i, j;
    for (i = 1; i <= n; i++)
        for (j = 1; j <= log(i); j++)
            Console.Write("GeeksforGeeks");
}
 
// This code is contributed by umadevi9616

Javascript

const fun()
{
    let i, j;
    for (i = 1; i <= n; i++)
        for (j = 1; j <= Math.log(i); j++)
            document.write("GeeksforGeeks");
}
 
// This code is contributed by SHUBHAMSINGH10.

La complejidad temporal de la función anterior se puede escribir como θ(log 1) + θ(log 2) + θ(log 3) + . . . . + θ(log n) que es θ(log n!)
Orden de crecimiento de ‘log n!’ y ‘n log n’ es lo mismo para valores grandes de n, es decir, θ(log n!) = θ(n log n). Entonces, la complejidad temporal de fun() es θ(n log n).
La expresión θ(log n!) = θ(n log n) se puede derivar fácilmente siguiendo la aproximación de Stirling (o la fórmula de Stirling)

log n! = n*log n - n = O(n*log(n)) 

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Fuentes: 
http://en.wikipedia.org/wiki/Stirling%27s_approximation

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *