第一章 算法概述
学习要点:
一、理解算法的概念,以及问题求解的过程。
二、掌握算法的几种描述方式。
三、理解算法的计算复杂性概念。
四、掌握算法渐近复杂性的数学表述。
(一)算法的性质
(1)输入:有零个或多个外部提供的量作为算法的输入。
(2)输出:算法产生至少一个量作为输出。这些输出是和输入有某种特定关系的量。
(3)确定性:组成算法的每条指令是清晰,无歧义的。
(4)有限性(有穷性):算法中每条指令的执行次数是有限的,执行每条指令的时间也是有限的。
(5)可实现性:此性质是指算法中有待实现的运算都是相当基本的,每种运算至少在原理上能由人用纸和笔在有限的时间内完成。(补充)
(1) 算法所处理的输入的值域必须严格定义。
(2) 同样一种算法可以用几种不同的形式来描述。
(3) 同一个问题可以存在多种解决的算法。
(4) 同一个问题的几种算法可能会基于完全不同的解题思路,而且解题速度也会有显著不同。