现实生活中的问题涉及不同个体间的复杂联系需要在计算机程序中描述生活中个体间的关系。数据结构主要研究非数值计算程序问题中的操作对象以及它们之间的关系。
数据:程序的操作对象,用于描述客观事物。是一个抽象概念将其分类可得到程序设计语言中的类型。如:int,float,char等等。
数据特点:可输入到计算机;可被计算机程序处理。
数据元素:组成数据的基本单位。
数据项:一个数据元素由若干个数据项组成。
数据对象:性质相同的数据元素的集合。
例如:
struct student//数据类型
{
char* name;
int age;
};
struct student s;//数据元素
struct student stu[100];//数据对象
s name = 'Jianmian';
s age = 25;//数据项
结构:数据元素之间不是独立,存在特定的关系,这些关系就是结构。
数据结构:指数据对象中数据元素之间的关系。如:数组元素间关系-固定线性关系。
数据结构分逻辑结构跟物理结构。
逻辑结构有:
集合结构:数据元素间没有特别关系仅同属相同集合
线性结构:数据元素之间是一对一的关系
树形结构:数据元素之间存在一对多的关系
图形结构:数据元素之间存在多对多的关系
物理结构(逻辑结构在计算机中的存储形式)有:
顺序存储结构:将数据存储在地址连续的存储单元
链式存储结构:将数据存储在任意的存储单元里,通过保存地址的方式
找到想关联的数据元素。
总结:数据结构是相互之间存在一种或几种特定关系的数据元素的集合。
数据结构只是静态的描述了数据元素之间的关系,高效的程序需要在数据结构的基础上设计和选择算法。
算法是特定问题求解步骤的描述,在计算机中表现为指令的有限序列。算法是独立存在的一种解决问题的方法和思想。对于算法而言语言并不重要重要的是思想。
算法的特性:
输入:算法有0个或多个输入;
输出:算法至少有1个或多个输出;
有穷性:算法在有限的步骤之后会自动结束而不会无限循环;
确定性:算法中的每一步有确定的含义,不会出现二义性;
可行性:算法的每一步都是可行的。
算法设计准则:
正确性:算法对于合法数据能够得到满足要求的结果;算法能够处理非法输入并得到
合理结果;算法对于边界数据和压力数据都能得到满足要求的结果。计算机程序不可能无限制
制的满足这条准则。
可读性:算法要方便阅读理解和交流
健壮性:算法不应该产生莫名其妙的结果
高性价比:利用最少时间和资源满足要求的结果
总结:算法是为了解决实际问题而设计的,数据结构是算法需要处理的问题载体,数据
结构与算法相辅相成。程序 = 数据结构 + 算法
阅读(1331) | 评论(0) | 转发(0) |