代码之家  ›  专栏  ›  技术社区  ›  jemfinch

o(n logn)有一个缩写吗?

  •  22
  • jemfinch  · 技术社区  · 14 年前

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

    • O(1) =“常数”
    • O(log n) =“对数”
    • O(n) =“线性”
    • O(n^2) =“二次”
    • O(n^3) =“立方”
    • O(2^n) =“指数”

    我们遇到的算法 O(n log n) 具有一定规律性的复杂性(想想排序复杂性支配的所有算法),但据我所知,在英语中没有一个词可以用来指代这种复杂性。这是我知识上的一个缺口,还是我们英语中关于计算复杂性的论述中的一个真正缺口?

    6 回复  |  直到 14 年前
        1
  •  26
  •   John Calsbeek    14 年前

    似乎是罗伯特·塞吉威克在书中创造的 C语言中的算法 . 也称为拟线性或对数线性。然而,线性方程有一个额外的好处,那就是它不是一个重载项(经济学和微分方程中使用的是拟线性,经济学和回归分析中使用的是对数线性)。

        2
  •  16
  •   Joe Koberg    14 年前

    “en log en”的音节数少于“指数”或“对数”。我想大多数人都是这么说的。

        3
  •  11
  •   Iain Samuel McLean Elder    14 年前

    根据 Wikipedia 你可以叫它 线性化的 , 多维列联表通用模型 拟线性 .

        4
  •  3
  •   JensenDied    14 年前

    O(2^n) =“吓人”

        5
  •  1
  •   Platinum Azure    14 年前

    我不相信有这样一个词。

    不过,更重要的是,这种想法:为什么把指数(11个字符)称为o(2^n)(6个字符)的“速记”?

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

        6
  •  -1
  •   chetan    14 年前

    不,没有一个词对应于o(nlogn)。你只需要把多余的时间花在说整件事上(注意:和“指数”一样多的音节)