数据:是能够被计算机程序识别,存储,加工和处理的描述客观事物的数字等符号集合的总称。
数据项:是具有独立含义的,数据不可分割的最小标识单位,是数据元素的组成部分,也可称为字段 和 域。
数据元素:是数据的基本单位,又可称为元素、节点、顶点和记录,是一个数据集体中可以标识和访问的数据单元。
数据对象:是性质相同的数据元素的集合,也叫数据元素类,是数据的一个子集,数据元素是数据对象的一个实例。
数据结构:是相互之间存在着一种或者多种关系的数据元素的集合,数据结构概念包含3个方面的内容,即数据的逻辑结构、数据的存储结构和数据操作,只有3个方面的内容相同才能称为完全相同的数据结构。
逻辑结构:是指数据元素之间存在的逻辑关系,是由数据元素的集合和定义在此集合上的关系组成。一般情况可分为线性结构(如线性表、栈、队列、串)和非线性结构(树、图)。
数据按逻辑结构的4种分类:
集合:集合中元素的关系极为松散,关系为“属于同一个集合”。如图像a。
线性结构:是数据元素中具有线性关系的数据结构,线性结构中的节点存在“一对一”的关系。开始节点于终端节点都是唯一的。如图像b。
树结构:是数据元素之间具有层次关系的一种非线性关系,树结构中的节点存在“一对多”的关系。如图像c。
图形结构:图形结构中的节存在“多对多”的关系。如图像d。
数据按存储结构分成4种:
1.顺序存储结构:由按顺序的数组来实现。
2.链式存储结构:数据元素的逻辑关系通常由附加的指针表示。
3.索引存储结构:在存储结点信息的同时,还会建立一个索引表(目录)
4.散列存储结构:根据结点的关键字直接计算出该结点的存储地址
数据操作:
(1)创建操作。(2)删除操作。(3)插入操作。(4)查找操作。(5)修改操作。(6)遍历操作。(7)销毁操作。
数据类型:
数据类型是一组性质相同的值的集合和定义在此集合上的一组操作的总称。
算法的概念:
算法是有穷规则集合的,其规则确定一个解决某一个特定类型问题的指令序列,其中每一条指令表示计算机的一个或者多个操作
算法5个特性:有穷性、确定性、可行性、有熟入、有输出。
算法设计的目标(4个):正确性、健壮性、高效性、可读性。
算法的时间复杂度:
是指算法的执行时间随问题规模的变化而变化的趋势,反映算法执行时间的长短。
当算法的执行时间T(n)=∑指令序列(i)的执行次数×指令序列(i)的执行时间
计算算法的时间复杂度的定理:
如:若算法执行时间是常数集,不依赖数据量的大小,则时间复杂度为O(1);若算法的执行时间与数据量为线性关系,则时间复杂度为O(n);对数级、平方级、立方级、指数级的时间复杂度分别为O(log2 n)、O(n^2)、O(n^3)、O(2^n)。这些函数按数量级递增排列具有下列关系:
0(1)<0(long2n)<0(n)<0(nlong2n)<0(n∧2)<0(n∧3)<0(2∧n)
算法的空间复杂度:
算法的空间复杂度是指算法执行时所占用的额外存储空间量随问题规模的变化而变化的趋势 。
执行一个算法所需要的存储空间主要包括两个部分:
(1)固定的空间部分 : 主要包括算法的程序指令、常量、变量所占的空间,与所处理问题的规模无关。
(2)可变空间部分:主要包括输入的数据元素占有的空间和程序运行过程中额外的存储空间,与处理问题的规模有关。