是否有O(n log n)的简写术语?

时间:2010-04-14 17:05:06

标签: algorithm complexity-theory big-o

对于我们在算法分析中遇到的大多数复杂性,我们通常只有一个单词:

  • O(1) ==“常数”
  • O(log n) ==“logarithmic”
  • O(n) ==“linear”
  • O(n^2) ==“quadratic”
  • O(n^3) ==“立方”
  • O(2^n) ==“exponential”

我们遇到具有O(n log n)复杂度且具有一定规律性的算法(想想所有以排序复杂性为主导的算法)但据我所知,我们在英语中没有一个词可用来指代那种复杂性。这是我的知识差距,还是我们关于计算复杂性的英语话语中的真正差距?

6 个答案:

答案 0 :(得分:26)

似乎是由Robert Sedgewick在 Algorithms In C 一书中创造的。也称为拟线性或对数线性。然而,线性方法还有一个额外的好处,即不是一个过载的术语(在经济学和微分方程中使用拟线性,而在经济学和回归分析中使用对数线性)。

答案 1 :(得分:16)

“en log en”具有比“指数”或“对数”更少的音节。我想大多数人都这么说。

答案 2 :(得分:11)

根据Wikipedia,您可以将其命名为 linearithmic loglinear quasilinear

答案 3 :(得分:3)

O(2^n) ==“O Scary”

答案 4 :(得分:1)

我不相信有这样一个词。

更相关的是,这个想法:为什么你将指数(11个字符)称为O(2 ^ n)(6个字符)的“简写”?

就个人而言,我很高兴地说“这个算法在en log en time中运行”。这是大多数人都需要听到的。

答案 5 :(得分:-1)

对于O(nlogn),没有单词等效。你只需花费额外的时间来说明整个事情(注意:相同数量的音节为“指数”)