【发布时间】:2017-07-04 05:43:45
【问题描述】:
我已经给出了一个查找所有 N 以下素数的项目。为此,测试用例超时条件是 [TestMethod, Timeout(1000)],这意味着我们的算法应该在
当我在 i5 处理器上运行相同的程序时,它运行成功,但是当我在 i3 上运行它时,测试用例因超时错误而失败。
算法的运行时间是否取决于处理器?
影响算法运行时间的因素有哪些?
【问题讨论】:
-
时间复杂度是一种理论结构,仅取决于算法的实现。在实践中,处理器可能会实现一些可以人为降低时间复杂度的功能(例如缓存)。
-
算法的复杂度,例如作为输入大小的函数,它简单地告诉我们运行时间或空间需求如何扩展。实际运行时间可能因使用的处理器/环境而异。
-
我不会说它降低了时间复杂度,它可以减少各种操作的一些时间常数/比例因子(而且“有点”通常是十倍或更多) .
-
那是公平的,我并没有说得那么好。我认为问题在于“在处理器上运行的算法”,这有点滥用词汇。我会留下我的评论,因为讨论可能对提问者很有价值,并感谢您的澄清!
-
对于您更新的问题:程序的运行时间当然取决于处理器。为什么会有人购买新处理器而不是坚持使用 90 年代 10 美元的处理器?影响运行时间的因素有很多。对于 SO 格式而言,将它们全部列出来过于宽泛。