1

好的,我正在学习算法课并且正在准备考试......不幸的是......我无法理解嵌套循环时间分析背后的概念

这段代码中有三个循环

for (i=1->n)
 for (j=1->i)
   for (k=1->i)
     x=x+1;

我不明白如何找出答案:s任何答案都会有很大帮助谢谢大家:)

4

2 回答 2

3

您需要总结循环,这只是需要计算的多个 sigma:

西格玛计算

内 sigma 中的1是您在最内层循环中所做的事情的复杂性。

于 2013-03-02T16:29:34.477 回答
1

当 时i=1,k-loop 运行 1 次,j-loop 运行 1 次。Total=1.1=1 time
当 时i=2,k-loop 运行 2 次,j-loop 运行 2 次。Total=2.2=4 times
当 时i=3,k-loop 运行 3 次,j-loop 运行 3 次。Total=3.3=9 次
当 时i=n,k-loop 运行 n 次,j-loop 运行 n 次。总计=nn=n^2 次

因此,算法的时间复杂度为 O(1+2^2+3^2+...n^2)=O(n(n+1)(2n+1)/6) =O(n^3)

于 2013-03-02T16:21:12.310 回答