首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么程序员更喜欢O(N^3)而不是O(N^2)

为什么程序员更喜欢O(N^3)而不是O(N^2)
EN

Stack Overflow用户
提问于 2014-01-11 22:53:00
回答 6查看 1.9K关注 0票数 30

我当时正在准备期末考试,档案里有一个问题我找不到答案:

一个算法的运行时间增长的顺序是O(N^2),第二个算法的运行时间的增长顺序是O(N^3)。列出三个令人信服(逻辑,令人信服)的理由,为什么程序员宁愿使用O(N^3)算法而不是O(N^2)算法。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-01-11 22:54:12

我可以想出以下三个理由:

  • 易于初步实施。
  • 在未来的维护中很容易。
  • O(N^3)算法的空间复杂度可能低于O(N^2)算法(即它使用的内存较少)。
票数 32
EN

Stack Overflow用户

发布于 2014-01-12 07:08:18

下面的例子可以让你相信,在某些情况下,O(N,N)可能比O(N,2)更好。

  1. O(N平方)算法对于代码来说是非常复杂的,但是如果输入大小是N≤100,那么对于实际使用,O(N立方)可以足够快
  2. O(N 2)有一个很大的常数乘以它,例如c= 1000,因此对于N= 100,c⋅N 2=1000⋅100 2= 10⁷,而如果c=1对于O(N)则c⋅N= 10⁶
  3. 与O(N)算法相比,O(N 2)算法具有很高的空间复杂度
票数 12
EN

Stack Overflow用户

发布于 2014-01-11 22:56:47

另一件事是,有些算法有一个很大的常数因子。一个O (N^2)可能有一个很大的常数因子,这使得使用起来不太实际(如果N足够小,就像Thorban所指出的那样)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21068930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档