for i = 1....n do
j=1
while j*j<=i do j=j+1
我需要找到theta(?)表示法中的渐近运行时间。 我找到了
3(1) + 5(2) + 7(3) + 9(4).....+.......
我尝试使用各部分的求和来找回答案。 但我不能......任何人都可以解释或给我一些线索。
答案 0 :(得分:1)
代码段的整体复杂性可以重写为:
for i = 1 to n
do for j = 1 to floor(sqrt(n))
因此,当sqrt(i)
从1变为i
时,我们会将n
的整体复杂性视为 sigma 。
不幸的是,没有一系列平方根的基本公式,所以我们必须依赖整合。
sqrt(i)
与限制的整合将为n sqrt(n)
(忽略常数因素)。
因此,循环的总体时间复杂度为 n sqrt(n)。
答案 1 :(得分:0)
使用Sigma表示法,您可以有条不紊地进行:
要获得theta,你应该找出i的平面平方根求和的公式(这是不明显的)。
为了安全起见,我选择了 Big Oh 。