时间复杂度分析---主定理

一直以来时间复杂度都不会算呜呜呜,今天理一理。鱼头(如图):

“ϵ”这个就不用管它了,没有什么卵用。

证明咱就算了,没这脑子。对于第一种情况,举几个栗子:

1)例1:二叉树的遍历。

           T(n)=2T (n/2)+Θ (1) 。

           其中(a=2), (b=2), (f(n)=1), (第一种情况)

           所以 (T(n)=Θ(n)) 。

2)例1:归并排序。

           T(n)=2T(n/2 )+Θ(n)  。

           其中(a=2), (b=2), (f(n)=n),此时(k=0)。(第二种情况)

           所以T(n)=Θ(nlogn)

      例2:二分搜索(折半搜索)。

           T(n)=T(n/2 )+Θ(1)  。

           其中(a=1), (b=2), (f(n)=1), 此时(k=0),(第二种情况)

           所以T(n)=Θ(log 2 n)。

3)没栗子了...(其实和第一种情况差不多)

 

例题解析(具体过程)

1)

        第一步:列出a=9,b=3,f(n)=n;

        第二步:计算=

        第三步:与f(n)比较,发现是第一种情况,代入计算,答案T(n)=Θ(n^2);

2)

         第一步:列出a=1,b=3/2,f(n)=1;

         第二步:计算=1;

         第三步:与f(n)比较,发现是第二种情况,代入计算,答案T(n)=Θ(logn);

3)

    【NOIP2015初赛】某算法的计算时间表示为递推关系式:

     T(N)=T(N−1)+N, T(0)=1。则该算法的时间复杂度为_______。

     

    【解析】难道这个就要用主定理了?容易推导出T(n)=T(0)+1+...+n=1+n∗(n+1)/2,   则时间复杂度为O(n^2 ) ,选D

 

  • 10
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值