• 算法导论(一):渐进记号


    算法导论(一):渐进记号

    算法中,常用极限情况度量一个函数的好坏,因此引入了渐进函数的概念。在渐进函数中,有以下五种渐进记号:Ο、Θ、Ω、οω

      假设有函数f(n)与函数g(n),如果令函数f(n)为实数a,函数g(n)为实数b,则有以下类比:

      f(n)=Ο(g(n))  类似于  ab

      f(n)=Ω(g(n))  类似于  a≥b

      f(n)=Θ(g(n))  类似于  a=b

      f(n)=ο(g(n))  类似于  a<b

      f(n)=ω(g(n))  类似于  a>b

    Ο记号

      Ο记号表示渐进上界,即存在正常数cn0,使得当nn0时,有0≤f(n)≤cg(n)。则认为f(n)=Ο(g(n))。(读作:大Ο(g(n)))

    Θ记号

      Θ记号表示渐进准确界,即存在正常数c1c2n0,使得当nn0时,有0≤c1g(n)≤f(n)≤c2g(n)。则认为f(n)=Θ(g(n))。(读作:Θ(g(n)))

    Ω记号

      Ω记号表示渐进下界,即存在正常数cn0,使得当nn0时,有0≤cg(n)≤f(n)。则认为f(n)=Ω(g(n))。(读作:大Ω(g(n)))

    ο记号

      ο记号表示非渐进上界,即存在正常数n0,对任意的常数c>0,使得当nn0时,有0≤f(n)<cg(n)。则认为f(n)=ο(g(n))。(读作:小ο(g(n)))

    直观上可以理解,当n趋近无穷时,有limn→∞(f(n)/g(n))=0 

    ω记号

      ω记号表示非渐进下界,即存在正常数n0,对任意的常数c>0,使得当nn0时,有0≤cg(n)<f(n)。则认为f(n)=ω(g(n))。(读作:小ω(g(n)))

    直观上可以理解,当n趋近无穷时,有limn→∞(f(n)/g(n))=∞ 

    函数的特性:

    传递性:

      f(n)=Ο(g(n))且g(n)=Ο(h(n))→f(n)=Ο(h(n))

      f(n)=Ω(g(n))且g(n)=Ω(h(n))→f(n)=Ω(h(n))

      f(n)=Θ(g(n))且g(n)=Θ(h(n))→f(n)=Θ(h(n))

      f(n)=ο(g(n))且g(n)=ο(h(n))→f(n)=ο(h(n))

      f(n)=ω(g(n))且g(n)=ω(h(n))→f(n)=ω(h(n))

    自反向:

      f(n)=Ο(f(n))  

      f(n)=Θ(f(n))  

      f(n)=Ω(f(n))

    对称性:

      f(n)=Θ(g(n))  当且仅当  g(n)=Θ(f(n))

      f(n)=Ο(g(n))  当且仅当  g(n)=Ω(f(n))

      f(n)=ο(g(n))  当且仅当  g(n)=ω(f(n))

     

  • 相关阅读:
    Newbit 启用淘宝店域名
    Ninja构建系统入门
    异想家Golang学习笔记
    Webpack学习
    JavaFx图形界面开发
    异想家Win10常用的软件推荐
    Java Swing图形界面开发
    优雅写Java之四(类与对象)
    优雅写Java之三(IO与文本解析)
    优雅写Java之二(数组集合流)
  • 原文地址:https://www.cnblogs.com/lorenshuai724005/p/10614914.html
Copyright © 2020-2023  润新知