时间复杂度

参考博客(侵删)

概念

渐进时间复杂度
一个程序的语句执行次数可以用一个代数式表示,取这个代数式的最高次项目忽略此项系数作为时间复杂度

使用范围

时间复杂度稳过范围极限范围
O(1) o o oo oo o o oo oo
O( x x x) o o oo oo o o oo oo
O( l o g n logn logn) o o oo oo 2 2 2 1 e 8 ^{1e8} 1e8
O( n n n) 5 e 7 5e7 5e7 1 e 8 1e8 1e8
O( n l o g n nlogn nlogn) 5 e 5 5e5 5e5 1 e 6 1e6 1e6
O( n n n 2 ^{2} 2) 5000 5000 5000 10000 10000 10000
O( n n n 3 ^{3} 3) 300 300 300 500 500 500
O( 2 2 2 n ^{n} n) 25 25 25 27 27 27
O( n ! n! n!) 11 11 11 11 11 11
O( n n n n ^{n} n) 8 8 8 8 8 8

符号

在这里插入图片描述

Master定理

主定理证明

内容

我们将一个规模为 n n n的问题,通过分治得到 a a a个规模为 n b \frac{n}{b} bn的子问题,每次递归带来的额外计算为 f ( n ) f(n) f(n),得到以下关系式:

在这里插入图片描述
定义C c r i t _{crit} crit
在这里插入图片描述

1.

在这里插入图片描述
在这里插入图片描述

2

在这里插入图片描述
在这里插入图片描述

3

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

第3种情况扩展

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

真题

1

假设某算法的计算时间表示为递推关系式
T ( n ) = 2 T T(n) = 2T T(n)=2T( n 4 \frac{n}{4} 4n)+ n \sqrt{n} n T ( 1 ) = 1 T(1) = 1 T(1)=1
求算法复杂度(C)

A . A. A. O ( n ) O(n) O(n)
B . B. B. O O O( n \sqrt{n} n ) ) )
C . C. C. O O O ( ( ( n \sqrt{n} n l o g n logn logn ) ) )
D . D. D.O ( ( (n 2 ^{2} 2 ) ) )

2

假设某算法的计算时间表示为递推关系式 T ( n ) = T ( n − 1 ) + n T(n) = T(n-1)+n T(n)=T(n1)+n T ( 0 ) = 1 T(0)=1 T(0)=1
求算法复杂度(D)
A . A. A. O O O ( ( ( l o g n logn logn ) ) )
B . B. B. O O O ( ( ( n n n l o g n logn logn ) ) )
C . C. C. O ( n ) O(n) O(n)
D . D. D.O ( ( (n 2 ^{2} 2 ) ) )

3

用下面的函数计算斐波那契数列的第 n n n项,则其时间复杂度为(D)

int F(int n){
	if(n <= 2) return 1;
	else return F(n-1)+F(n-2);
}

A . A. A. O ( 1 ) O(1) O(1)
B . B. B. O ( n ) O(n) O(n)
C . C. C.O ( ( (n 2 ^{2} 2 ) ) )
D . D. D. O O O( F F F n _{n} n ) ) )

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值