程序设计的实质是对确定的问题选择一种好的结构,加上设计一种好的算法。
所以,
程序=数据结构+算法
数据结构是一门讨论“描述现实世界实体的数学模型(通常为非数值计算)及其之上的的运算在计算机中如何表达和实现的”科学
数据结构包含:
- 逻辑结构
- 存储结构
- 运算
用计算机解决问题的几个步骤:
- 分析问题,确定数据模型
- 设计相应的算法
- 编写程序,运行并调试程序直至得到正确的结果
名词解释:
- 数据:描述客观事物的数、字符以及所有能输入计算机并被计算机程序处理的符号的集合。
- 数据元素:数据的基本单位(如一个班中的每一个学生的记录)。
- 数据项:具有独立含义的数据最小单位,也称为域(如每一个学生记录包含的学号、姓名、性别等即为数据项)。
- 数据对象:性质相同的有限个数据元素的集合,是数据的一个子集。
- 数据结构:指所涉及的数据元素的集合以及数据元素之间的关系,由数据元素之间的关系构成结构,因此可把数据结构看成是带结构的数据元素的集合。、
数据结构 = 数据对象 + 结构
数据结构包含的几个方面的内容:
- 数据元素之间的逻辑关系,即数据的逻辑结构,它是数据结构在用户面前呈现的形式。
- 数据元素及其关系在计算机存储器中的存储方式,即数据的存储结构,也称为数据的物理结构。
- 施加在该数据上的操作,即数据的运算。
其中,
逻辑结构是从逻辑关系(主要是指数据元素的相邻关系)上描述数据的,与数据的存储无关,独立于计算机的,因此数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
存储结构是逻辑结构用计算机语言的实现或在计算机中的表示(也称为映射),也就是逻辑结构在计算机中的存储方式,它是依赖于计算机语言的,一般在高级语言(Java、C、C++等)的层次上来讨论存储结构。
数据的运算是定义在逻辑结构上之上,每种逻辑结构都有一组相应的运算,最常见的运算有检索、插入、删除、更新、排序等。最终需要在对应的存储结构上用算法实现。
因此,数据结构是一门讨论“描述现实世界实体的数学模型(通常为非数值计算)及其之上的的运算在计算机中如何表达和实现的”科学。
接下来的文章将会详细分析数据的逻辑结构、存储结构、以及数据的运算,持续关注!!!
难点:算法分析、算法复杂度分析、时间复杂度、空间复杂度!!!