时间复杂度例子
常数阶O(1)、对数阶O(log2n)、线性阶O(n)、线性对数阶O(nlog2n)、平方阶O(n2)、立方阶O(n3)、k次方阶O(nk)、指数阶O(2n)
常数阶O(1)
int a = 1;
int b = 1;
int c = a + b;
对数阶O(log2n)
int a = 1;
while(a <= n) {
a *= 2;
}
线性阶O(n)
for(int a = 1; a <= n; a ++) {
}
线性对数阶O(nlog2n)
int b;
for(int a = 1; a <= n; a ++) {
b = 1;
while(b <= n) {
b *= 2;
}
}
平方阶O(n2)
for(int a = 1; a <= n; a ++) {
for(int b = 1; b <= n; b ++) {
}
}
立方阶O(n3)
for(int a = 1; a <= n; a ++) {
for(int b = 1; b <= n; b ++) {
for(int c = 1; c <= n; c ++) {
}
}
}
k次方阶O(nk)
for(int a = 1; a <= n; a ++) {
for(int b = 1; b <= n; b ++) {
for(int c = 1; c <= n; c ++) {
// ...k层循环
}
}
}
指数阶O(2n)
int fun(int a) {
if(a <= 1) {
return 1;
} else {
return fun(a - 1) + fun(a - 2);
}
}
标签:nk,int,复杂度,例子,线性,对数,2n,数据结构
From: https://www.cnblogs.com/acmez/p/17197106.html