算法导论学习 之 渐进符号

本文深入探讨了大O、大Ω、大Θ、小o、小ω记号在算法分析中的应用,解释了这些记号的含义、性质及相互关系,包括上界、下界和等价关系的定义与应用实例,以及如何通过这些记号来评估算法的时间复杂度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、大O记号(表示上界)
            1.        f(n) = O(g(n))
                        意味着:存在常数 C>0,n 0 >0,使得任意 n≥n 0 ,有 0 ≤ f(n) ≤ C·g(n) 成立。
                        如:2n 2 = O(n 3 ) 。
            2.        ​可以将大O理解为一个函数集:
                        O(g(n)) = { f(n) | 存在常数 C>0,n0>0,使得任意 n≥n0,有 0 ≤ f(n) ≤ C·g(n) 成立 }
                        因此,等号并不对称,严格来说是 “属于集合符号”:∈ 。
            3.        误差界限:
                        例:f(n) = n3 + O(n2),即 f(n) 主要是 n3,但也有一些低阶项 O(n2 ) 。
                        即:存在函数 f(n),有 h(n)∈O(n2) 使得 f(n) = n3 +  h(n)。
                        首先描述的是首项 n3,然后加上至多为 n2  的误差项。
            4.        ​更微妙的等式:
                        例:n2 + O(n) = O(n3 ),也是等号不对称。
                        等号不表示“等于”,而表示“是”,即所有等号左边的都是等号右边的。
                        即:存在  O( n 3 ),有任意  n 2  + O(n) 都是  O( n 3 );反之则不然,所以不对称。
                        准确定义:对于任意 f(n)∈ O(n),存在 h(n)∈O(n3),使得 n2 + f(n) = h(n) 成立。
            ​5.        等式关系链:等式可以从左到右传递下去,即可理解为是通过“什么是什么”组成的链式表达式,
                                  第一个就是最后一个,或者说以最后一个为上界。但不能反过来从后往前传递。
二、大Ω符号(表示下界)
            ​1.          f(n) = Ω(g(n))
                       Ω(g(n)) = { f(n) | 存在常数 C>0,n0>0,使得任意 n≥n0,有 0 ≤ C·g(n) ≤ f(n) 成立  }
            2.          例:√n = Ω(lgn),即对于足够大的 n,√n 至少是 Ω(lgn) 的常数倍。
三、大Θ符号
            1.        Θ(n) = O(n) ∩ Ω(n)​
           2.        Θ(g(n)) = { f(n) | 存在常数 C1>0,C2>0,n0>0,使得任意  n≥n 0 有 0 ≤  C 1 ·g(n) ≤ f(n) ≤  C 2 ·g(n)  }

         

四、小o符号和小ω符号
         1.     o(g(n)) = { f(n) | 任意常数 C>0,存在 n0>0,使得任意 n≥n0,有 0 ≤ f(n) < C·g(n) 成立 }
                 lim [ f(n) / g(n) ] = 0 as n->∞
         2.     ω(g(n)) = { f(n) | 任意常数 C>0,存在 n0>0,使得任意 n≥n0,有 0 ≤  C·g(n)  <  f(n)  成立  }
                 lim [ f(n) / g(n) ] =  as n->∞
         3.     例:2n2 = o(n3),
                     证:存在 n0>0,当 n>n0,有 2n2 < C·n3,即 n > 2/C
                              取 n = [n0],则 n0 = 2/C 。
                               即存在 n0 = 2/C ,当 n>n0,有 2n2 < C·n3 成立,即 2n2 = o(n3) 。
         4.     注:1/2n2 = Θ(n2) ≠ o(n2)
                                                           ≠  ω (n2)
五、性质及类比:
        1.    传递性
                f(n) = Ө(g(n)) 和 g(n) = Ө(h(n)) => f(n) = Ө(h(n))
                f(n) = O(g(n)) 和 g(n) = O(h(n)) => f(n) = O(h(n))
                f(n) = Ω(g(n)) 和 g(n) = Ω(h(n)) => f(n) = Ω(h(n))
                f(n) = o(g(n))  和 g(n) = o(h(n)) => f(n) = o(h(n))
                f(n) = ω(g(n)) 和 g(n) = ω(h(n)) => f(n) = ω(h(n))
        2.    自反性
                f(n) = Ө(f(n))
                f(n) = O(f(n))
                f(n) = Ω(f(n))
        3.    转置对称性:
                f(n) = Ө(g(n)) 当且仅当 g(n) = Ө(f(n))
                f(n) = O(g(n)) 当且仅当 g(n) = Ω(f(n))
                f(n) = o(g(n)) 当且仅当 g(n) = ω(f(n))
           4.     类比:
                   可以类比:O    Ω    Θ    o    ω
                                        ≤    ≥    =    <   >
                   但类比并不是等价于;同时小符号是大符号更为严格的记号,但却没有严格的小θ。


By Black Storm(使用为知笔记)

 

转载于:https://www.cnblogs.com/BlackStorm/p/4267570.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值