对于我们在算法分析中遇到的大多数复杂性,我们通常只有一个单词:
O(1)
==“常数”O(log n)
==“logarithmic”O(n)
==“linear”O(n^2)
==“quadratic”O(n^3)
==“立方”O(2^n)
==“exponential”我们遇到具有O(n log n)
复杂度且具有一定规律性的算法(想想所有以排序复杂性为主导的算法)但据我所知,我们在英语中没有一个词可用来指代那种复杂性。这是我的知识差距,还是我们关于计算复杂性的英语话语中的真正差距?
答案 0 :(得分:26)
O(n log n)
== "linearithmic" 似乎是由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),没有单词等效。你只需花费额外的时间来说明整个事情(注意:相同数量的音节为“指数”)