对于这些函数,时间复杂度(渐近)如何相等?

时间:2016-10-14 06:51:37

标签: algorithm

它们在我知道的实际运行时间上有所不同,但是使用了我无法确定的概念,因为代码在执行方面有很大的不同,它们具有相同的时间复杂度。

怎么来

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

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

渐近相同,时间复杂度为O(logn!)

1 个答案:

答案 0 :(得分:1)

fun的步数是O(i的log(i)之和从1到n)与O(log(n!))相同。

fun2的步数为O(n log(n))。

现在Stirling's approximation告诉我们这实际上是一样的。