Intro:
算法是一个能够通过计算机程序 机械性解决同类问题的方法
算法问题,就是面对多个实例的一个普通的问题集;一个算法能够解决所有可能的实例。
例如:Sort排序问题,Graph color 图的配色问题,equation solving 相等解决问题
算法的术语:
算法是一个有限的指令集,并且:
没有模棱两可,每一步都清晰定义;
对于所有符合格式的输入,都能够工作
在合理的时间内运行完成;
解决问题的步骤:
1.理解问题,
2.决定计算方法(顺序vs并行,精确vs近似)
3.决定使用的方法
4.设计必要的数据结构和算法
5.检查正确性,追踪案例输入
6.分析性预估(时间,空间,最差情况,平均情况)
7.编程
8.总结 复盘
学习内容:
·算法分析
·重要的算法问题:
Sort 排序
Search 查找
String processing 字符串处理
Graph algorithms 图形算法
·算法设计方法:
Brute force 蛮力法
Decrease and conquer 降治法