算法时间复杂度分析(1)

本文介绍了算法时间复杂度分析的基础知识,包括大O、小o、大Ω、小ω和Θ符号的定义及实例。讲解了如何通过这些符号来理解和分析算法的渐进上界和下界,同时阐述了衡量算法时间复杂度的重要性,以及如何通过基本运算执行次数来估算算法复杂度。此外,还讨论了常数时间复杂度和二分搜索的平均时间复杂度为O(logn)。
摘要由CSDN通过智能技术生成

如果有错误的地方,欢迎大家指正,只希望不要误导别人。


开篇:

     学习算法时间复杂度分析,首先要对O、o、Ω、ω、Θ这几个符号有基本的了解,下面将给出这几个符号详细的定义。

    1、大O符号:

        定义:

                设f和g是定义域为自然数集N上的函数,若存在正数c和n0,,使得对一切 n >= n0有 0 <= f(n) <= cg(n)成立, 则

                称f(n)的渐进上界是g(n),记做:f(n) = O(g(n))

        例子:

               f(n) = n^2 + n, g(n) = n^2; 当 c = 2, 只要n0 = 1, 就满足, f(n) <= cg(n)    ==>    这个时候称g(n)为f(n)的渐进上界,

               记作:f(n) = O(n^2)

        注意:

                1、f(n) = O(g(n)),f(n)的阶不高于g(n)的阶。
                2、可能存在多个正数c,只要指出一个即可。
                3、对前面有限个值可以不满足不等式。
                4、常函数可以写作O(1).


    2、小o符号:

         定义:

                设f和g是定义域为自然数集N上的函数,若对于任意正数c都存在n0,使得对一切 n >= n0,有 0 <= f(n) < cg(n)成立,

                则记作f(n) = o(g(n))

         例子:

               f(n) = n^2 + n , 则f(n) = o(n^3) c >= 1成立,因为n^2 + n < cn^3(n0 = 2)
               任给1 > c > 0, 取n0 > ⌈2/c⌉即可,因为
               cn >= cn0 > 2 (当 n >= n0)
               n^2 + n < 2n^2 < cn^3

         注意:

                1、f(n) = o(g(n)),f(n)的阶低于g(n)的阶。
                2、对不同正数c,n0不一样,c越小n0越大。
                3、对于前面有限个n值可以不满足不等式。


    3、大Ω符号:

         定义:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值