DEV Community

drake
drake

Posted on

算法的时间复杂度表达方式“O”是啥?怎么读?

  • 算法的时间复杂度准确的来说全称应该是:“算法的渐进时间复杂度”

    这里的“渐进”可以理解为一种趋势,“O”真正描述的是随着输入规模的膨胀,算法所需计算次数的膨胀趋势;这往往描述的是最极端,最坏的情况所需的计算次数;

  • "时间"复杂度中的“时间”并不是时间

    不是我们生活中的分秒时间概念,而是次数,是对于次数的抽象表达;因为真正的处理耗时受到硬件等条件的制约,无法确定;

  • 这个“O”该怎么读?这不是零,是O,大写的欧;比如O(n);

    • 首先得知道它是啥,他是希腊字母O,不是英文字母(拉丁字母)O;不是同一个字符体系;虽然长得差不多;
    • 为啥是希腊字母?这是国际数学惯用规范的问题,数学领域就喜欢这么用,就是喜欢用希腊字母来作为数学符号;可以看下面的希腊字母表,会有很多熟悉的面孔
    > 大写形式:Α, Β, Γ, Δ, Ε, Ζ, Η, Θ, Ι, Κ, Λ, Μ, Ν, Ξ, Ο, Π, Ρ, Σ, Τ, Υ, Φ, Χ, Ψ, Ω
    > 小写形式:α, β, γ, δ, ε, ζ, η, θ, ι, κ, λ, μ, ν, ξ, ο, π, ρ, σ/ς, τ, υ, φ, χ, ψ, ω
    
    • 如何发音?一般人都是发 "big O" 但是其作为希腊字母表的第15个字母正确的发音是:“omicron” ;这里我不能明白大家为啥都叫" big O "
    • 新冠肺炎的一个变异毒株 B.1.1.529 被 WHO 命名为“omicron” ,正是希腊字母的第15个字母O,关于这个命名,英文圈都是发音:“omicron” ,却不是 “big O” ; 中文音译过来是:“奥密克戎”
    • 综上:新冠变异毒株的读法,以及一些数学符号比如A,发:“alpha”音;我觉得O(n)最为标准的读法应该是:"奥密克戎n",而不该是“big O n”吧

Top comments (1)

Collapse
 
dragon72463399 profile image
drake

关于为何大家不发“omicron”音,有人带带弟弟,给弟弟指导下吗?