【发布时间】:2017-09-04 09:22:15
【问题描述】:
下面程序O(n^2)的时间复杂度是多少?
for (int i = n; i > 0; i += c) {
for (int j = i+1; j <=n; j += c) {
// some O(1) expressions
}
}
第二个for循环不会像条件j <= n那样正确执行,j的值总是大于n。
检查此link 中的第三点
【问题讨论】:
-
这里看起来有问题。也许他们的意思是第一个循环中的
i -= c? -
奇数组循环 - 外部循环似乎在倒计时,内部循环在向上计数 - 根据它们的条件 - 但两者都以相同的值递增(向上) - 或者如果值为负数则递减.你确定你在这里得到了正确的例子吗?
-
是的@davidbak 这个例子是对的。我猜原来的链接有打字错误。
-
可悲的是,实际上互联网上存在错误....
标签: c++ algorithm time time-complexity