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)中
我希望这能有所帮助。您可能想检查一下