目录
1.2 计算模型
1. 一个好的程序不仅要考虑数据结构与算法,还要考虑效率,即:(数据结构+算法)*效率 = 程序 ==> 应用。
2. 算法分析的两个重要指标 (需要进行度量)
正确性:算法功能是否与问题一致
成本:时间消耗与存储空间消耗
3. 定义:T(n) 为一个算法在最坏的情况下所需要操作的步骤。不同算法之间的好坏主要看T(n)的大小,T(n)是屏蔽了计算机硬件差异,语言差异,编译差异等差异之后的理想平台下的运行指标,如大O,大Ω,大Θ等。
4. 一般的计算模型有图灵模型与RAM模型,它们均将算法的运算时间转换成算法执行的基本操作次数。
1.2.1 图灵机模型
图灵机的三个组成要件
1. 有限的字母表: cell中存储的内容
2. 读写头: 只是当前位置, 可读可写
3. 状态表: 当前读写头的状态
图灵机状态转换过程 transform(q,c; d,L/R,p)
q:当前状态
c:读写头所指cell当前的内容
d:读写头所指cell改写的内容
L/R:向左/右移位
p:读写头转换后的状态 (一旦转入'h'状态,则停机)
1.2.2 图灵机实例(二进制加法)
1.2.3 RAM模型
1. 与图灵机类似,均假设有无限空间
2. 由一系列顺序编号寄存器组成,但总数无限
3. 算法所运行的时间转换成算法运算时的次数
1.2.4 RAM模型实例(除法向下取整)
老师将RAM模型的向下取整与怎么样客观的度量算法运行时间联系在一起。图灵机、RAM等模型为度量算法性能提供了准确的尺子。而如何使用尺子,有哪些规则,有什么技巧在下一篇记录。