算法分析与设计概述
一、基础概念
什么是算法?
解决问题的流程/步骤 (顺序、分支、循环…),若干条指令组成的有穷序列
什么是软件?
软件 = 程序 + 数据 + 文档
什么是程序?
程序 = 算法 + 数据结构
程序:按事先设计的功能和性能要求执行的指令序列
数据:使程序能正常操纵信息的数据结构
文档:与程序开发,维护和使用有关的图文材料
对软件的新认识
软件 = 程序 + 数据库 + 文档 + 服务
二、学习算法的最终目的
- 了解计算机应用中的各种常用算法
- 了解评价算法的准则和方法
- 掌握设计和分析算法的基本原理、方法和技巧
- 提高分析问题和解决问题的能力
三、接下来会涉及到的算法
- 递归与分治
- 动态规划
- 贪心算法
- 回溯算法
- 分支限界法
- 随机化方法