索引
O(1)
int i = 8; int j = 6; int sum = i + j;
O(logn)、O(nlogn)
i=1;
while (i <= n) {
i = i * 2;
}
上面算法的时间复杂度是O(logn),如果循环n次就成了O(nlogn)
i=1;
while (i <= n) {
i = i * 3;
}
上面算法也是O(logn),因为对数之间是可以相互转换的,都可以转换成以2为底的对数,所以说时间复杂度时忽略底数,直接说logn
O(m+n)、O(m*n)
int cal(int m, int n) {
int sum_1 = 0;
int i = 1;
for (; i < m; ++i) {
sum_1 = sum_1 + i;
}
int sum_2 = 0;
int j = 1;
for (; j < n; ++j) {
sum_2 = sum_2 + j;
}
return sum_1 + sum_2;
}
上面的是O(m+n),因为两部分分别执行m次和n次。
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2978

微信
支付宝