算法分析 - 预期增长率

时间:2012-04-21 18:03:49

标签: c++ c algorithm

我有一个关于澄清我的家庭作业的问题。

http://www.cs.bilkent.edu.tr/~gunduz/teaching/cs201/cs201_homework3.pdf

要查看讲义,请转到http://www.scribd.com/nanny24/d/36657378-Data-Structures-and-Algorithm-Analysis-in-C-Weiss的第25页。

以下是我需要做的,但我不明白这意味着什么。这是否意味着 - 算法1-比较实际运行时间与(n ^ 3 + 3 *(n ^ 2)+ 2 * n)/ 6,n =数组大小? 我不这么认为,但我无法推断其他任何事情。你能解释一下这是什么吗?

2- Plot the expected growth rates obtained from the theoretical analysis (as given for each solution) by 
using the same N values that you used in obtaining your results. Compare the expected growth rates 
and the obtained results, and discuss your observations in a paragraph.

编辑2:

Algorithm 1:
    n           actual running time(ms)     (n^3 + 3*(n^2) + 2*n)/6 (I don't know whether the type is millisecond or not)
    100         1                       171700
    1000        851                     167167000

因此,考虑到实际运行时间与理论运行时间之间的巨大差异,教师的意义可能与理论时间复杂度函数不同,即(n ^ 3 + 3 *(n ^ 2)+ 2 * n)/ 6对于算法1.这是函数:http://www.diigo.com/item/image/2lxmz/m7y3?size=o

2 个答案:

答案 0 :(得分:2)

是的,在理论时间复杂度函数中插入 n 的值后,您的教师通过“预期增长率”表示预测的运行时间。

虽然这种用法是标准的,但如果我是你,我仍会向导师查询。

答案 1 :(得分:1)

理论数字可能是操作或比较的数量或类似的东西。

我猜增长率意味着价值增长的速度有多快?。当n100变为1000时,理论值会增加因子167167000/171700 = 973.6,与实际单词测量因子851相比。