算法导论学习笔记(二) 初稿

3.1渐进记号

  1. 适用范围

    • 算法的运行时间
    • 算法的其他方面(空间复杂性等)
    • 与算法无关的函数
  2. 渐进紧确界

    • 常用g(n)表示
    • 表达式如下
       c1,c2Z, nn0, 0c1g(n)f(n)c2g(n)
    • f(n)=Θ(g(n))
  3. 不同的记号

    • O(渐进上界)

      • 表达式如下
         cZ, nn0, 0f(n)cg(n)
      • f(n)=O(g(n)) ⊆ f(n)=Θ(g(n))
    • Ω(渐进下界)

      • 表达式如下
         cZ, nn0, 0cg(n)f(n)
      • 如果f(n)=O(g(n)) 且 f(n)=Ω(g(n)),则f(n)=Θ(g(n)).
    • o(非渐进紧确上界)

      • 表达式如下
         c>0, nn0, 0cg(n)f(n)
      • 等价关系如下
        limn+f(n)g(n)=0

      例如,2n= o(n2) , 但 2n2o(n2)

  4. ω(非渐进紧确下界)

  5. 等式中渐进记号的含义

    • 例如等式2n^2^ + 3n + 1 = 2n^2^ + Θ(n) ,其右边的θ(n)指代其集合中某个函数,通过这种方法,消除等式中无关紧要的细节;

    • 例如等式2n^2^ + Θ(n) = Θ(n^2^),
      其含义为无论左边Θ(n)取集合中哪一个函数,Θ(n^2^)中总存在一个函数使得等式成立。即等式右边给出了一个更模糊的界限。

    • 匿名函数数目与渐进记号出现次数有关,与数学表达式含义无关,例如∑O(i) 不同于 O(1)+O(2)+O(3)+…,
      前者仅有一个匿名函数而后者有多个。

  6. 渐进运算的性质

    • 传递性
    • 自反性
    • 对称性
    • 转置对称性:
      f(n)=O(g(n)) 当且仅当 g(n)=Ω(f(n))
      f(n)=o(g(n)) 当且仅当 g(n)=ω(f(n))
    • 三分性
      任意两个实数a,b,对于a < b,a = b,a > b三种情况,必然有一成立。且上述性质并不适用于所有函数,比如n和 n1+sinn

3.2重要公式

  1. 斯特林近似公式

    n!=2πn (n/e)n (1+Θ(1/n))lg(n!)=Θ(nlgn)

  2. 多重对数 ( lgn `)

    • 定义: lgn=min{i0|lg(i)n1}

    • i的增长异常缓慢
      lg2=1
      lg22=2
      lg24=3
      lg216=4

  3. 多项式有界

    f(n)=O(nk)lg(f(n))=O(lgn)

你可能感兴趣的:(算法导论,算法导论)