算法就是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算。
算法是一系列解决问题的明确指令,也就是说,对于符合一定规范的输入,能够在有限时间内获得要求的输出。
算法的基本特性:
- 有穷性:必须在有限步骤之后终止
- 确定性:每个步骤必须精确定义,无歧义
- 输入:0个或多个输入(输入是从特定的对象集合中取出)
- 输出:一个或多个输出
- 可行性:它的所有运算都是基本的运算,理论上可用纸和笔在有限时间内精确完成
算法学习的基本内容
- 设计算法:基本设计策略
- 表示算法:用语言表示出来
- 确认算法:合法输入后能够输出正确答案
- 分析算法:占用CPU的时间和占用存储器的空间
- 测试程序:调试
为什么分析算法?
可以知道该算法的好坏、促进设计出更好算法。
运行时间的度量单位:
- 找出算法中最重要的操作(对总运行时间贡献最大的操作)--基本操作
- 然后计算在该算法中基本操作运行的次数
计算时间的渐进表示
n:问题的规模