一.计算:
一个算法的几个要素:
输入,输出,正确性,有穷性,可行性,健壮性。
程序!== 算法
什么是好算法?
正确,健壮,可读(结构化,命名,注释)都很重要,但并不是好算法。
效率(速度快,存储空间少)(时间成本+空间成本)
(Algorithms+data struct)*efficiency=computation
二.问题规模:
问题实例的规模,往往是计算成本的主要因素。
规模越近,计算成本也越近。
2.1 最坏情况
2.2 理想模型
同一算法,如何评价优劣?
2.3 图灵机模型
q状态
c值
d新值
l/r左右
p新状态
h停机
2.4 图灵机实例
2.5 RAM模型
三 大O记号
3.1长远,主流
足够大,增长趋势
3.2对数,高效解O(log(n))
常数,对数(常底数无所谓,常数次幂无所谓)
3.3多项式,有效解O(n∧2)
3.4指数,难解O(2∧n)