何时(不是如何或为什么)计算算法的Big O

Bri*_*air 10 algorithm big-o

最近在一次采访中有人问我这个问题,并对其他人的想法感到好奇。

“什么时候应该计算大O?”

大多数网站/书籍都在谈论如何计算Big O,但实际上并没有在您应该进行计算的时候。我是入门级开发人员,经验很少,因此不确定我是否在正确的道路上思考。我的想法是,您将有一个目标Big O要努力实现,开发算法然后计算BigO。然后尝试重构算法以提高效率。

然后我的问题就变成了这实际上是在工业界发生的事情还是我离这还很遥远?

gsa*_*ras 11

“什么时候应该计算大O?”

当您关心算法的时间复杂度时。

我什么时候在乎?

当您需要使算法能够扩展时,这意味着期望将大数据集作为算法的输入(例如,最近邻居算法中的点数和维数)。

最值得注意的是,当您想比较算法时

要求您执行一项任务,可以将几种算法应用于该任务。您选择哪一个?您比较它们的空间,时间和开发/维护复杂性,然后选择最适合您的需求。

  • 有趣。我没有考虑将可伸缩性纳入答案。我将确保考虑到这一点。谢谢! (2认同)
  • 在等式中增加成本,开发时间和维护时间,使人们知道扩大规模会带来成本;否则每个人都认为自己是Google。 (2认同)