前言:
看到阅读量,缓缓打出一个?本文初衷只是一个学习笔记,参考课程邓俊辉的数据结构,大家想了解可以自己去看一下视频,毕竟自己笔记太垃圾,不好误导别人。
1、算法分析
正确性:
计算成本:运行时间+储存空间
Ta(P)=用算法a求解某一问题P的实例所需的计算成本
通常:规模接近,计算成本也接近,规模扩大,计算成本也上升。
特定算法+不同实例:
Ta(n)=用算法a求解某一问题规模为n的实例所需的计算成本
但是同样问题等规模的不同实例,计算成本不尽相同。
完善:T(n)=max{T(P)| |P|=n},规模为n的实例最坏的状况下的计算成本
同一问题不同算法也会导致计算成本不同
为给出客观评价,需抽象出一个理想的平台或者模型,不再依赖于上述具体因素,直接准确地描述、测量并评价算法。
2、图灵机模型TM:Turing Machine
Transition Function:(q, c; d, L/R, p)
若当前状态为q,且当前字符为c,则将当前字符改写为d;转向左侧或右侧临格;转入p状态,一旦转入特定的状态‘h’,则停机。
图灵机二进制加一:
(<,1,0,L,<)//左行,1–>0
(<,o,1,R,>)//右行
(<,#,1,R,>)
(>,0,0,R,>)//右行
(>,#,#,L,h)//复位
3、RAM: Random Access Machine
寄存顺序编号,总数没有限制:R[2], R[1]…
每一基本操作仅需常数时间 //循环及子程序本身非基本操作
与TM模型一样,RAM模型也是一般计算工具的简化与抽象,使我们可以独立于具体的平台,对算法效率做出可信的比较与评判。
在这些模型中,算法的运行时间正比于算法需要执行的基本操作次数。
T(n)=算法为求解规模为n的问题,所执行的基本操作次数。