zoukankan      html  css  js  c++  java
  • 算法复杂性表示

    算法复杂性可以用O,Ω, o, ω, θ 5个字母表示.

    O表示算法复杂性的上限.  Ω表示算法复杂性下限.

    o表示算法函数比o中的函数低阶. o与O对应, 是下限了.

    如复杂度为f(n), o(g(n))表示f(n)比g(n)低阶. 像f(n)=n, g(n)=n^2, f(n)就比g(n)低一阶.如果g(n)=2n, f(n)与g(n)为同阶.

    ω与Ω对应, ω中的函数比f(n)高阶.

    θ表示f(n), g(n)同阶.

    =======================

    以下设f(N)和g(N)是定义在正数集上的正函数。

    O: 

    如果存在正的常数C和自然数N0,使得当NN0时有f(N)≤Cg(N)。则称函数f(N)当N充分大时上有界,且g(N)是它的一个上界,记为f(N)=Ο(g(N))。这时我们还说f(N)的阶不高于g(N)的阶。 

     Ω:

     关于记号Ω,定义如下:如果存在正的常数C和自然数N0,使得当NN0时有f(N)≥Cg(N),则称函数f(N)当N充分大时下有界,且g(N)是它的一个下界,记为f(N)=Ω(g(N))。这时我们还说f(N)的阶不低于g(N)的阶。

    θ:

    记号θ将随之清楚,因为我们定义f(N)=θ(g(N))则f(N)=Ο(g(N)) 且f(N)=Ω(g(N))。这时,我们说f(N)与g(N)同阶。比如,对于算法Search在最坏情况下的时间复杂性Tmax(m)。已有Tmax(m)=Ο(m)和Tmax(m)=Ω(m),所以有Tmax(m)(m),这是对Tmax(m)的阶的精确估计。

     o:

    如果对于任意给定的ε≥0,都存在非负整数N0,使得当NN0时有f(N)≤εg(N),则称函数f(N)当N充分大时比g(N)低阶,记为f(N)= o(g(N)),例如:4NlogN +7=o(3N 2+4NlogN+7)

     ω:

    f(N)=ω(g(N))定义为g(N)=o(f(N))。即当N充分大时f(N)的阶比g(N)高。

    按照大Ο的定义,容易证明它有如下运算规则:

    1. Ο(f)+Ο(g)=Ο(max(f,g));
    2. Ο(f)+ Ο(g)=Ο(+g);
    3. Ο(fΟ(g)= Ο(f·g);
    4. 如果g(N)= Ο(f(N)),则Ο(f)+ Ο(g)= Ο(f);
    5. Ο(Cf(N))= Ο(f(N)),其中C是一个正的常数;
    6. f =Ο(f);
  • 相关阅读:
    Python基本数据类型
    DNS服务
    在浏览器地址栏输入百度网址之后的故事(面试必考)
    C++对象的赋值和复制
    C++区别于其他语言的知识点总结
    SQL连接查询(最全面)
    源码堆栈信息保存 到此一游
    linux 内核调试之关键函数名记要
    记几个命令 转
    JS 奇淫巧技 转
  • 原文地址:https://www.cnblogs.com/barrysgy/p/2320262.html
Copyright © 2011-2022 走看看