算法三要素:数据、运算和控制
算法的数据:
基本数据(布尔值 字符 整数 实数)
较复杂数据(向量 矩阵 记录)
更复杂数据(集合 树 图 声音 图像)
算法的运算:
基本运算(逻辑 赋值 算术 关系)
复杂运算(函数值计算 向量运算 集合运算 表、树、图上的运算)
设计算法的一般步骤为:
(1)先选用该问题的一个数据模型。
(2)接着,弄清数据模型在已知条件下的初始状态和要求的结果状态,以及两个状态之间的关系。
(3)然后探索从已知初始状态出发到达要求的结果状态所必需的运算步骤。
抽象数据类型(Abstract Data Types,简记ADT)
概念:是算法的一个数据模型连同定义在该模型上、作为该算法构件的一组运算。
抽象数据类型带给算法设计的好处有:
(1)算法顶层设计与底层实现分离;
(2)算法设计与数据结构设计隔开,允许数据结构自由选择;
(3)数据模型和该模型上的运算统一在ADT中,便于空间和时间耗费的折衷;
(4)用抽象数据类型表述的算法具有很好的可维护性;
(5)算法自然呈现模块化;
(6)为自顶向下逐步求精和模块化提