特殊双循环的时间复杂度?

时间:2015-10-01 00:41:03

标签: algorithm big-o time-complexity

所以我在考试中被问到这个问题,这让我发疯了。问题是: 根据n:

,以下代码的时间复杂度是多少?
math_util.h

a)O(n log(n))

b)O(n ^ 2)

我坚信答案是n(log(n)),因为内部循环只运行k次,其中k ^ 2 <= n,这只是log2(n),其时间复杂度为的log(n)。然而,我所谈过的每个人也参加了考试,他认为答案是n ^ 2。任何人都可以给我一个坚定的推理方式吗?谢谢!

1 个答案:

答案 0 :(得分:3)

您的推理是正确的,下面有关于O(n log n)的答案的次要编辑。答案无法O(n^2)

2^k = n所以k = log n

内循环将运行:log n
外循环将运行:n

所以这是O(n log n)时间复杂度