复习专用,部分内容来自教案课件。
目录
1.1 算法及其特点
- 定义:对特定问题求解步骤的一种描述,是指令的有限序列。
- 算法与程序的区别与联系:
(1)区别:
程序:与某种编程语言有关,能直接在机器上运行。
算法:与特定语言无关,可以用任何语言甚至自然语言实现。
(2)联系:程序 = 算法 + 数据结构 - 算法的基本特点:
(1)输入:0个或多个
(2)输出:1个或多个
(3)有穷性:在执行有穷步之后结束,且每一步都在有穷时间内完成。
(4)确定性:算法中的每一条指令必须有确切的含义,相同的输入只能得到相同的输出。
(5)可行性:算法描述的操作可以通过已经实现的基本操作执行有限次完成。 - 有效算法的特征:
(1)正确性:满足具体需求,对任何合法输入都会得到正确的结果
(2)健壮性:对非法输入的抵抗能力
(3)可读性:容易理解和实现
(4)时间复杂度低:运行时间短
(5)空间复杂度低:占用空间小
注意区分算法的基本特点和有效算法的特征!!!
1.2 算法描述方法
1.自然语言:容易理解;但冗长,容易有二义性。(避免写成自然段)
2.程序流程图:清晰直观;缺少严密性、灵活性。(注意抽象层次)
3.伪代码:介于自然语言与程序语言之间,操作指令可以结合自然语言设计。 表达能力强,抽象性强,容易理解; 使用方法:自然语言+程序设计语言。
1.3 算法设计的一般过程
以旅行商问题(TSP问题)为例: