算法导论学习笔记——算法分析

算法导论学习笔记——算法分析

算法分析是关于计算机程序性能和资源利用的研究,特别关注性能,什么比性能更重要?

  • 正确性
  • 健壮性(是否经常奔溃)
  • 模块化:只需要修改局部的代码
  • 安全性

problem sorting

Input:一个数字序列

output:排序之后的序列

  • 插入排序:最坏的时间复杂度O( n 2 n^2 n2),逆序情况

时间复杂度

T ( n ) T(n) T(n):输入规模位n时算法的运行时间

  • Average-case
    • T ( n ) T(n) T(n):运行时间的期望值
  • best-case(cheat)
    • 不常用,因为要保证算法的运行时间上界,而不是下界,保证算法的适用性

BIG IDEA(大局观) 渐近分析

  • 忽略常量
  • 关注运行时间的增长

Θ \Theta Θ-notation: 丢弃低阶项,忽略系数

  • E X : 3 n 3 + 2 n 2 = Θ ( n 3 ) EX:3n^3+2n^2=\Theta(n^3) EX:3n3+2n2=Θ(n3).
  • 平方项的算法总有一个足够大的n比三次方的更优

插入排序的时间复杂度分析:

逆向排序时:

T ( n ) = ∑ j = 2 n Θ ( j ) = Θ ( n 2 ) T(n)=\sum_{j=2}^n\Theta(j)=\Theta(n^2) T(n)=j=2nΘ(j)=Θ(n2) (常数求和)

归并排序:

image-20220411110619422
详见:递归问题即时间复杂度分析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值