在给定渐近性能,时间和元素数量时理解渐近符号

时间:2016-11-13 05:05:38

标签: algorithm sorting asymptotic-complexity

这里的第二年计算机科学专业的学生。在课堂上,我们将涵盖渐近符号,排序算法等。我需要一些帮助来理解渐近符号以及这些值如何相互关联。我已经有一段时间了,但我似乎无法得出一个合理的结论。我想,答案很简单,但它让我望而却步。我的教授向我们提供了关于渐近符号及其使用方法的详细说明。

所以,提出的问题是:

Big-O和Big-theta渐近性能有什么区别?

我的结论是:

-Big-O性能意味着算法可以提前完成,渐近性能是最坏的情况。

-Big-Theta性能意味着算法无法提前完成,渐近性能是最佳情况。

如果这些假设不正确,有人可以为我做芝麻吗?

- 和 -

木头夹头需要20秒才能夹住60个木头夹头,而木头夹头的木头夹头算法具有时间渐近性能Theta(n ^ 2)。在五分钟内,这个木头夹头(如果木头夹头可以夹住木头)可以放多少木材?

据我所知,由于算法是n ^ 2,我们可以预期,越来越多的木材需要花费的时间是指数级的。然而,我不知道如何在5分钟内找到木材的数量。我觉得我过度思考这个问题,答案很简单。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果你知道你有一个O(n ^ 2)算法并且你可以在Y秒内完成X个工作单位,那么你可以在大约4Y秒内完成2X工作单位。你可以在大约16秒内完成4X工作单元。

或者,您在16 * Y秒内可以完成的工作量等于X * sqrt(16)。

因此,您在Z秒内可以完成的工作量是X * sqrt(Z)。 15的平方根约为3.873,意味着你可以在15秒内完成60 * 3.873或232.46单位的工作。

但是,重要的是要记住,你在这里使用近似值。渐近"数学"没有给出确切的数字。如果我在现实生活中做这个练习(并且我做了一些非常相似的事情),我估计我能在300秒内完成大约四倍于20秒的工作,因为300大约是16次尽可能多的时间。

所以我对这个问题的答案是"大约240个chucks。"