关于时间复杂度问题

2024-11-24 01:13:37
推荐回答(1个)
回答1:

for i=1 to n//第一层是n遍
for j = 1 to i//第二层是n遍
for k = 1 to j第三层是n遍
x =x +1;
n*n*n.
复杂度是O(n^3),n的立方,

i = n*n;
while(i!=1)
i = i / 2;
逆向思维就是
for(i=1;i<=n*n;)
{
i = i*2;
}
这个时间复杂度表示什么
i=1,2,3,...n
m=1,4,8...2^n

就是2^n = m,
那么2^n=m反函数就是log2 m =n,将程序反转来想就是 O(logm)
logm^2=2logm;这样系数可以忽略的。