Time 给定算法的运行时近似

Time 给定算法的运行时近似,time,runtime,time-complexity,Time,Runtime,Time Complexity,我试图计算这个算法的时间复杂度: for i = 1, ..., n for j = 1, ..., i { for k = 1, ..., j print k k = 2 while (k < i) k = k^2 } 对于i=1,…,n 对于j=1,…,i { 对于k=1,…,j 打印k k=2 而(k

我试图计算这个算法的时间复杂度:

for i = 1, ..., n
    for j = 1, ..., i
    {
        for k = 1, ..., j
            print k
        k = 2
        while (k < i)
            k = k^2
    }
对于i=1,…,n
对于j=1,…,i
{
对于k=1,…,j
打印k
k=2
而(k

我试图计算时间,但没有成功。

请下次多做一些研究。

但我还是会尝试只考虑复杂的时代

for i = 1, ..., n     //n times
    for j = 1, ..., i  //n times
    {
        for k = 1, ..., j  //n times
            print k;  // constant
        k = 2;  //constant
        while (k < i) 
            k = k^2;  //log2n - 1
   }
对于i=1,…,n//n次
对于j=1,…,i//n次
{
对于k=1,…,j//n次
打印k;//常数
k=2;//常数
而(k
每个循环执行
n次。变量赋值总是恒定的,所以O(1)。在while循环中,k从2开始,第一次之后k是4。第二次通过它变成16。第三次:256。。。它显然是对数的;因此它将执行O(log2(n))次

n(n(n(O(1))+O(1)+log2n-1))=n(n(n+log2n)=n^2(n+log2n)=n^3+n^2(log2n)
由于时间分析中对数的底是不相关的,所以2消失了。因此
n^3+n^2(logn)
定义术语是
n^3
,即在O(n^3)中

我希望这能有所帮助。

您可能想检查一下