数据结构与算法概述
1. 数据结构的原则
l 一种数据结构就是一类数据的表示及其相关的操作
l 一个算法如果能够在所要求的资源限制内将问题解决好,则称这个算法是有效的。
l 一个资源限制是:可用来存储数据的全部空间——可以分为内存空间限制和磁盘(外存)空间限制——和允许执行每一个子任务所需要的时间。
2. 抽象数据类型和数据结构
l 类型是一组值的集合。
l 数据项(Data Items)是一条信息或者其值属于某个类型的一条记录,数据项也可以说成是数据类型的成员。数据项也可以说成是数据结构的成员。
l 数据类型是指一个类型和定义在这个类型上的一组操作。
l 抽象数据类型(ADT)是指数据结构作为一种软件构成的一种实现。
l 数据结构是ADT的实现。
l 数据项有逻辑形式(Logical Form)和物理形式(Physical Form)两个方面。利用ADT给出的数据项定义是它的逻辑形式,数据结构中对数据项的实现是它的物理形式。
3. 问题、算法和程序
l 问题:从数学角度来看,可以把问题看作函数。函数(function)是输入(即定义域,domain)和输出(即值域,range)之间的一种映射关系。
l 算法:指解决问题的一种方法或者一个过程。
性质:
(1) 正确性:包括有效性(soundness)和完备性(completeness)。它必须完成所需要的功能,把每一次输入转化为正确的输出。
(2) 具体步骤:一个算法应该由一系列具体步骤组成。
(3) 确定性:下一步应执行的步骤必须明确。
(4) 有限性:一个算法必须由有限步组成。
(5) 可终止行:算法必须可以终止,即不能进入死循环。
l 程序:一个计算机程序被认为是使用某种程序设计语言对一个算法的具体实现。
l 总结:问题是一个函数,或者是从输入到输出的一个映射。算法是一个能够解决问题的、有具体步骤的方法。