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”音,有人带带弟弟,给弟弟指导下吗?

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay