算法与数据结构先导章

一. 程序,算法需要度量,不然毫无意义。
二. 计算模型:
1. 正确性
2. 成本:运行时间+所需存储空间
A 无法正确计算每个程序运行的时间。一般用过规模来衡量程序所花时间。(T(n))
B 最坏情况:最先考虑程序执行的最坏情况。
C 理想模型:不依赖程序员,机器,体系结构,从而直接准确的描述,测量并评价算法。
D 图灵机模型:按照一个节拍来运转;用5个状态来描述:
transition Function:(q,c;d,L/R,p):
若当前状态为q且当前字符为c,则将字符改为d,并转向左右的邻值,转入p状态;一旦进入h,停机结束。
E RAM模型:与图灵机的转换函数相对应,也是一般计算工具的简化和抽象。独立于具体平台,对算法的效率做出可信的比较和评判。
算法的运行时间 = 算法需要执行的基本操作次数(Tn)
三. 大O记号:关注主要的,长远的变化趋势
1. 采用大O几号来度量时间复杂度。
A 常系数忽略:
B 低次项可忽略:O(na+nb)(a>b) = O(na)
2. 高效解:
A .O(1):不含有转向(循环,调用,递归等),无分支,必然顺序执行。
B .O(logn):忽略掉该有的常数项
3. 有效解:
A .O(nc) :
B 线性:O(n)
4. 难解:
A .O(2n):不存在有效算法
5. 增长速度:
四. 算法分析:
1. 两个重要任务 : 正确性(不变性 * 单调性) + 复杂度
2. 复杂度分许的主要方法:
迭代:级数求和
递归:递归跟踪+递归方程
猜测+验证
3. 级数:
A 算数级数:与末项平方同阶
T(n) = 1++2+3+45+……+n = n(n+1)/2 = n2
B 幂方级数:比幂次高出一阶
T2(n)=12+22+32+42+……….n2 = n(n+1)(2n+1)/6 = O(n3)
C 几何级数:与末项同阶
D 收敛级数:O(1)
这里写图片描述
4. 循环:估算两层for循环的时间复杂度
五. 迭代与递归:
六. 动态规划

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值