好的算法:效率高+节省空间
问题:寻找求解算法(算法设计技术)
算法:算法的评价(算法分析技术)
算法类:问题复杂度的评价(问题复杂性分析)
问题类:能够求解的边界(计算复杂性理论)
研究目标:什么问题是可计算的?
已有模型:递归、图灵机、lambda演算、Post系统
条件:有限条指令、每条指令有限步、过程确定
核心论题:Church-Turing问题
指数复杂度:难解;多项式复杂度:现实上可计算;对数复杂度:高度并行
算法复杂度:算法使用的时间、空间的估计
问题复杂度
问题/实例:含有若干参数的需要回答的一般性提问,实例是对其参数的一组赋值。
形式定义:对所有有效输入停机的Turing机
描述?伪码。
类C,Pascal
赋值:<-
if……then……else
while,for,repeat……until
goto
//
允许自然语言,忽略数据结构、模块、异常处理和变量说明
最坏情况:W(n),解决问题所需的最长时间
平均情况:A(n),$A(n)=\sum_{I\in S}t_Ip_I$,S:实例集,次数*概率加权,即期望