【发布时间】:2016-03-17 11:13:03
【问题描述】:
我发现计算大多数问题的时间复杂度很容易,但我的教授给出了非常复杂的例子,我很难弄清楚它们。以下是他给我们的两个我无法深入了解的内容:
示例 1:
x = 0
j = n
while (j >= 1)
for i = 1 to j do
x += 1
j *= 3/4
return x
示例 2:
x = 0
j = 3
while (j <= n)
x += 1
j *= j
return x
请注意,对于 x += 1 和 j *= j 等运算,我们仅将其计为 1 个时间单位。
如果你能告诉我你将如何计算这些示例的时间复杂度,我应该能够推断出我将如何计算他给出的大多数示例。谢谢!
【问题讨论】:
-
第一个例子中
j的初始值是多少? -
这绝不是我的专业领域,但您可以自己在图表上绘制这些。 x=j, y = 给定 j 值的迭代次数。第二个是 O(sqrt(n)) btw,因为 j*=j。第一个... O(n^x) 从我的看法来看。但我可能是错的。
-
@vish4071 我的错!我做了改变
标签: algorithm performance time while-loop code-analysis