【发布时间】:2015-10-30 21:58:16
【问题描述】:
我正在研究算法复杂度,我对以下两种算法的区别有疑问:
算法#1:
sum = 0
i = 1
while (i < n) {
for j = 1 to i {
sum = sum + 1
}
i = i*2;
}
return sum
算法#2:
sum = 0
i = 1
while (i < n) {
for j = 1 to n {
sum = sum + 1
}
i = i*2;
}
return sum
唯一的区别是'for'循环,但是这些算法的时间复杂度有什么区别呢?我什么时候必须增加或增加嵌套循环的复杂性?
【问题讨论】:
-
我认为不是 O(n^2) 而是 O(logN) 第一和 O(NlogN) 第二。