所以这是我作业中的一个问题......
假设算法的效率为 n 3,如果算法中的一个步骤需要 1 ns (10 -9 ) 秒),那么算法处理大小为 1,000 的输入需要多长时间?
这是我的问题:我该如何解决?请不要发布答案。帮助我学习如何自己解决这个问题。
所以这是我作业中的一个问题......
假设算法的效率为 n 3,如果算法中的一个步骤需要 1 ns (10 -9 ) 秒),那么算法处理大小为 1,000 的输入需要多长时间?
这是我的问题:我该如何解决?请不要发布答案。帮助我学习如何自己解决这个问题。
你定义n
为1000
。因此,您需要 n 3 个步骤,每个步骤都采取1 ns
. 将两者相乘,您就有了答案。
总体思路:如果一种算法需要f(n)
许多步骤并且需要一步,t
那么您需要t * f(n)
该算法。
在这种情况下, n
inn^3
指的是数据大小。如果您有大小为 1 的输入,请将其插入到 n^3 中。(然后乘以时间。)如果你有一个大小为 1,000 的输入......你应该怎么做?
编辑:最初我用 Big-Oh 表示法(例如O(n^3)
)发布了这个,这是有缺陷的,因为它忽略了可能的固定成本,这会使发布的问题无法回答。我觉得我应该留下这个答案,也许主要是为了提醒其他人不要犯和我一样的错误。感谢您的评论。