【问题标题】:same algorithm execution time on different computers? [closed]在不同的计算机上相同的算法执行时间? [关闭]
【发布时间】:2014-07-31 15:53:23
【问题描述】:

如果一个时间复杂度为 O(nlogn) 的算法在一台计算机上在两秒内执行,那么一台快 100 倍的计算机执行同样的算法需要多长时间?是 2/100 秒吗?据我所知,大 o 表示法是输入大小的函数,与同一算法在不同计算机上的执行时间无关,对吗?

【问题讨论】:

  • 这个问题无法回答。这取决于很多因素。一些例子是:RAM 是否也快 100 倍?算法使用IO吗?两台机器上的缓存大小是多少?算法是否针对“较慢”的机器进行了优化?
  • 缺乏知识并不构成对收入者帖子投反对票的理由。它可能会使新手远离社区。在加入堆栈溢出之前,收入者应该知道什么没有官方门槛

标签: algorithm time big-o time-complexity


【解决方案1】:

复杂性并没有说明运行时间。

示例:我正在一个小团队中研究一个非常复杂的算法,完全相同的算法在我的计算机上运行 30 分钟,在计算机上运行 60 分钟(与我的通勤者相似的性能) 的团队成员,在 15 分钟内使用处理器非常慢但操作系统不同和特殊扩展的上网本。运行时间也因不同的编译器而异。

复杂度只给你一个提示,如果输入增长,你的算法需要多长时间。

【讨论】:

  • 如果两台电脑除了处理器速度完全一样怎么办?
  • 如果我运行由团队成员编译的完全相同的代码,它会比我自己编译时慢。所以不,即使您在同一台计算机上运行代码但在其他地方编译它,它也有不同的运行时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-16
相关资源
最近更新 更多