【发布时间】:2014-10-12 19:58:57
【问题描述】:
计算以下算法的复杂度?
我有以下代码sn-p:
i = 1;
while (i < n + 1) {
j = 1;
while (j < n + 1) {
j = j * 2;
}
i = i + 1;
}
请详细解释一下
我想知道解决问题的步骤,以便我可以解决此类问题
【问题讨论】:
-
内循环采用
O(log(n)),因为j呈指数增长。外循环采用O(n),因为i线性增长。因此总体复杂度为O(n*log(n))。 -
@Jarod42:OP 很可能是指
i<n+1。 -
@Jarod42:哈哈,不,这里有 cmets 的最小长度 :)
标签: c++ algorithm time-complexity