算法设计介绍
1. 什么是算法Algorithm
简单的说就是解决特定问题的步骤、方法。
2. 算法的要求desirable properties:
1). 正确
2). 效率
3). 容易实现
3. 一个算法要同时被证明是正确的和没有错误的,意思是说要从正反两面来证明算法。
4. 算法无非就是包括induction (顺序推导) 和 recursion (递归).
5. 一个计算机科学家同时也是个数学家,尽管作为数学家还很差劲。
6. 常用共式: 求和,求阶乘
7. 建模要用到的对象:
1). Permutation 排列
2). Subsets 子集
3). Trees 树
4). Graphs 图
5). Points 点
6). Polygons 多边形
7). string 字符串
8. 递归的研究是指把大的问题分解成同类型的若干个小的问题来解决。怎么把大的问题分解是关键。
算法分析
1. 算法分析的RAM (Random Access Machine)模型。
1). +-*=被视为一个原子操作
2). Loops/subroutines不是能作为元子操作
3). 每个内存访问是一个原子操作
2. 最坏、最好和平均复杂程度。