算法设计:1.big idea、loop-invariant、RAM
其他
2020-04-02 20:32:47
阅读次数: 0
一、时间复杂度T()
1.大思想 Big idea:渐进增长性
- 忽略具体的机器数据
- 观察
O(n),n→∞的函数的增长趋势,即渐进增长性分析 asymptotic analysis
O(n):简化,选取最优影响力的参数。比如
O(3n3+90n2−5n+520)就可以简化为
O(n3)
2.复杂度
- 最糟 worst-case time
- 平均 average-case time
- 最好 best-case time
3.特性
二、循环不变式 loop-invariant
- 作用:证明算法正确
- 阶段:
- 初始化 initialization
- 维持 maintenance
- 结束 termination
- PS:很像数学证明的归纳证明
三、RAM模型
- 作用:评价算法好坏的度量
- RAM:random-access machine(重点它是machine机器)
- 无并发:指令的执行是一个接一个,没有并发。
- 原子性:每个指令都是一个原子操作,比如算术运算、逻辑运算、数据移动、控制操作
- 常量时间:每个指令花费时间一样
- 大内存:内存足够大
- 使用RAM模型:数基本操作的个数
发布了461 篇原创文章 ·
获赞 183 ·
访问量 12万+
转载自blog.csdn.net/sandalphon4869/article/details/104512606