时间复杂度

> github仓库:https://github.com/EanoJiang/Data-structures-and-algorithms

复杂度 详解

常数阶

线性阶

平方阶

立方阶

1742468022419

分析: i = n的时候,第二层执行n次,所以第二层从一开始累加到n

可以画出如下的表格来分析:

1742468263530

对数阶

1742468333940

1742468408875

结束条件:2^(t-1) = n 👉 t = log2(n) + 1

所以时间复杂度就是O( log2(n) )

1742468617843

1742468657178


实战环节

1742468772456

结束条件:x = 2^(t-1) = n/2 ,也就是t = log2(n) 的时间复杂度,选A

1742468921231

结束条件:sum = t*(t+1)/2 = n ,也就是 t = 根号n 的时间复杂度,选B

次数 1 2 t
i 1 2 t
sum 1 3 1+2+..+t

1742469186629

结束条件:n = (t+1)^2 ,也就是t = 根号n 的复杂度,选B

次数 1 2 t
x 1 2 t
(x+1)(x+1) (1+1)^2 (2+1)^2 (t+1)^2

实际上就是x每次自增,结束条件是n = (x+1)^2

1742469459141

复杂度分析:

第一层 2^(t-1) = n log2(n)
次数 1 2 t
i 2^0 2^1 2^(t-1)
内层执行的次数 2^0 2^1 2^(t-1)

内层总共执行次数是累加第二行的结果,

所以时间复杂度是t = 2^0 + 2^1 + .. + 2^(log2(n)-1) = 2^0 + 2^1 + .. + 2^log2(n) = 1*(1-2^log2(n))/(1-2) = n-1 = n

所以,

第二层 n

最终复杂度以最大的为准, 也就是O(n),选B

posted @ 2025-03-21 10:05  EanoJiang  阅读(38)  评论(0)    收藏  举报