网站外链工具,google推广服务商,代备案域名30元,东莞纸箱厂东莞网站建设目录
一、数据结构研究
二、基本概念和术语
2.1 基本概念
2.2 什么是数据结构#xff1f;
2.3 数据结构内容
2.4 逻辑结构种类
2.5 存储结构种类
2.6 数据类型和抽象数据类型
三、算法和算法分析
3.1 算法的定义
3.2 算法的特性
3.3 算法设计要求
3.4 算法好坏评…目录
一、数据结构研究
二、基本概念和术语
2.1 基本概念
2.2 什么是数据结构
2.3 数据结构内容
2.4 逻辑结构种类
2.5 存储结构种类
2.6 数据类型和抽象数据类型
三、算法和算法分析
3.1 算法的定义
3.2 算法的特性
3.3 算法设计要求
3.4 算法好坏评判标准
四、知识总结 一、数据结构研究
数据结构通常是用来研究非数值计算的程序设计中的线性表、树和图以及它们中数据结点之间的关系和对这些数据结点可进行的操作学科。
二、基本概念和术语
2.1 基本概念 数据元素是组成数据的基本单位通常作为一个整体来进行考虑和处理如学生表数据中的每条记录即为一个数据元素也被称为结点或顶点。数据项构成数据元素的最小单位如学生表中的每条记录的属性。 三者之间的关系数据学生表数据元素(学生记录)数据项学号或姓名等。
数据对象将性质种类相同的数据元素(记录)放在一起构成的集合如正整数数据对象N{1,2,3,4,5...}
2.2 什么是数据结构
说白了数据结构就是将一些数据元素记录放在一起构成一个集合并且这些数据元素之间存在着一种或多种特定的联系。
2.3 数据结构内容
逻辑结构在大脑中想象出来的数据元素之间的逻辑邻接关系。物理存储结构 数据元素在物理内存中的存放表现形式。数据的运算和实现 在内存中操作这些数据元素。
2.4 逻辑结构种类
划分方式一线性结构和非线性结构。其中
线性结构一对一是指只有一个开始结点和终端结点且两结点之间的数据元素只有一个前趋和后继结点相邻结点之间呈现出一对一的关系如学生表中的记录即线性表、栈、队列、串。 非线性结构是指数据元素即结点之间不是一对一的关系而是存在一对多如树或多对多的关系如图。
树一对多 图多对多 划分方式二
集合结构数据元素之间除了都属于同一个集合外无其它任何关系。
线性结构数据元素之间存在一对一的线性关系。
树形结构数据元素之间存在着一对多的层次关系。
图状或网状结构数据元素之间存在着多对多的任意关系。 2.5 存储结构种类
顺序存储结构用一组连续的存储单元来存储数据元素其元素之间的逻辑关系根据存储位置的不同来表示如C语言中用数组来存放具有一定顺序的数据元素。 链式存储结构将数据元素存放到任意位置的存储单元中根据存储单元中保存的下一个元素的指针地址来表示数据元素间的前后顺序如C语言中使用带“数据域指针域”的方式来表示链式存储。 索引存储结构在存储数据元素的同时还为其建立一张索引表来记录结点存放的内存地址位置。 散列存储结构根据数据元素的关键字结合某种公式直接计算出该数据结点预存放的内存地址位置。 2.6 数据类型和抽象数据类型
数据类型 一组性质相同的值的集合以及定义在此集合上可以进行的操作如int、char。
抽象数据类型从问题中抽象出的数据、不考虑其在计算机内存中的存储形式以及运算实现算法其包括数据元素、数据元素之间的关系、以及可以对这些数据元素进行的逻辑运算操作。
定义格式如下 说明抽象数据类型可以用编程语言来描述实现即用编程语言中已有的数据类型来对应抽象数据类型的数据部分用函数方法来描述抽象数据类型的操作部分。例如 三、算法和算法分析
3.1 算法的定义
算法就是求解问题的方法和步骤描述可以使用自然语言中文、英语等、流程图、伪代码、编程语言等来描述实现。
3.2 算法的特性
有穷性一个算法总是能在执行有限时间后结束。确定性算法中的每条指令必须有确切的含义没有二义性即相同的输入会得到相同的输出。可行性算法的描述可以通过具体的操作来实现如C语言。输入一个算法有0或多个输入输出一个算法有一个或多个输出。
3.3 算法设计要求
正确性给出几个刁难的、苛刻的输入仍能获取正确的输出结果。可读性要求算法的描述是可以被人们看懂理解的。健壮性对于一些非法错误的输入程序不会出现奇怪的信息、终止执行而是对其做出相应的处理并接着运行。高效性算法的设计在执行时间和存储空间上占用要少。
3.4 算法好坏评判标准
时间复杂度。指程序运行所消耗的时间。一般不会以编写算法程序并运行来获取算法的时间复杂度而是通过找出算法中执行次数最多的语句并求出它的数量级来作为算法的时间复杂度简记“T(n)O(f(n))”其中O表示取数量级。
步骤
1、从代码中找出执行次数最多的语句作为基本语句*在循环中嵌套层次最深的语句往往是执行次数最多的。
2、计算基本语句执行的次数从而得到f(n)。 3、根据公式求出数量级用“O”符号表示取数量级。 说明时间复杂度T(n)按数量级递增顺序如下图越往右算法的时间复杂度越高 空间复杂度指算法在执行过程中所消耗的存储空间。一般将代码中临时辅助变量所占用的空间个数来作为空间复杂度的数量级f(n)简记为S(n)O(f(n))n为问题的大小规模。 说明T(n)时间复杂度和S(n)空间复杂度在实际场景中往往存在矛盾即此消彼长的关系。 四、知识总结 声明“山月润无声”博主知识水平有限以上文章如有不妥之处欢迎广大IT爱好者指正小弟定当虚心受教!