在算法分析中,我们通常用单个词来表示大多数复杂性:
O(1)
== "常数"O(log n)
== "对数"O(n)
== "线性"O(n^2)
== "二次方"O(n^3)
== "三次方"O(2^n)
== "指数"
我们经常遇到具有 O(n log n)
复杂度的算法(想想所有被排序复杂度支配的算法),但据我所知,在英语中没有单个词可以用来指代这种复杂度。这是我的知识盲区,还是我们关于计算复杂度的英语讨论中真正存在的空白?
在算法分析中,我们通常用单个词来表示大多数复杂性:
O(1)
== "常数"O(log n)
== "对数"O(n)
== "线性"O(n^2)
== "二次方"O(n^3)
== "三次方"O(2^n)
== "指数"我们经常遇到具有 O(n log n)
复杂度的算法(想想所有被排序复杂度支配的算法),但据我所知,在英语中没有单个词可以用来指代这种复杂度。这是我的知识盲区,还是我们关于计算复杂度的英语讨论中真正存在的空白?
O(n log n)
等于 "线性对数"看起来是由Robert Sedgewick在书籍Algorithms In C中提出的。也叫做"准线性"或者"log线性"。然而,线性对数具有额外的优点,它不是一个重载的术语("准线性"在经济学和微分方程中使用,而"log线性"在经济学和回归分析中使用)。
“en log en”的音节比“指数”或“对数”少。我认为大多数人都这么说。
"n
长,人们都这么说。 - Matthew FlaschenO(2^n)
等于“O可怕”。
我不相信有这样的术语。
更相关的是这个想法:为什么你把指数(11个字符)称为O(2^n)(6个字符)的“速记”?
就我个人而言,我很高兴说“这个算法在en log en时间内运行”。这已经足够大多数人听到了。
在中文中,没有单个词与O(nlogn)等效。你只需要花费额外的时间说出整个术语(注意:与“指数”有相同数量的音节)。