数据:
是描述客观事物的数和字符的集合。
数据元素:
数据的基本单位,一个数据元素由若干个数据项组成。
数据项:
具有独立含义的数据最小单位,也称字段或域。
数据对象:
性质相同的数据元素的集合,是数据的一个子集。
数据结构:
指所有的数据元素以及数据元素之间的关系,可以看做相互之间存在特定关系的数据元素的集合。
数据的逻辑结构:
从数据元素的逻辑关系上对数据进行描述,是指数据元素之间逻辑关系的总体。
逻辑结构的表示法:图示表示法和二元组表示法
逻辑结构的类型:集合、线性结构和树形结构。
线性结构:数据元素之间存在一对一的关系。
树形结构:数据元素之间存在一对多的关系。如二叉树
数据的存储结构:
数据的逻辑结构在计算机存储器中的存储表示。
存储结构:
顺序存储结构、链式存储结构、索引存储结构、哈希存储结构。
顺序存储结构:是指采用一组连续的存储单元存放所有的数据元素。优点:存储效率高,实现随机存取;缺点:不利于数据的修改、插入、删除等
链式存储结构:每个逻辑元素用一个内存结点存储,每个结点是单独分配的,但是不一定是连续的,无需占用一整块空间(通过指针域将所有的结点链接起来)。 优点:便于数据的修改,不需要占用一整块空间;缺点:空间利用率低,需要分出一部分存储单元用来存放结点信息,不能实现随机存取。
索引存储结构:在存储数据信息的同时还需要建立一张索引表。
哈希存储结构:根据元素的关键字通过哈希函数求出一个值,将这个值作为该元素的存储地址。
数据类型:
是指一组性质相同的值得集合和定义在此集合上的一组操作的总称;是已实现的数据结构。
算法:
是对特定问题求解步骤的一种描述,它是指令的有限序列。
算法的特性:
有穷性、确定性、可行性、有输入、有输出。
程序是算法在计算机上的特定实现。
算法设计的目标:正确性、可使用性、可读性、健壮性、高效率与低存储量要求。
健壮性:具有很好的容错性,提供异常处理,能够对不合理的数据进行检查。
算法分析就是分析算法占用计算机资源的多少。
算法分析的目的是分析算法的时空特性以便改进算法。
两种算法时间性能分析方法:事前估算法和事后统计法。
时间分析就是求出算法所有原操作的执行次数。
时间复杂度:表示随问题规模n的增大,算法的执行时间的增长率和f(n)的增长率相同。
空间复杂度:一个算法在运行过程中临时占用的存储空间大小的量度。
小结:
从逻辑上可以把数据结构分为线性结构和非线性结构两大类。
有序表属于逻辑结构。
ADT:数据对象、数据关系和基本操作。
算法的时间复杂度取决于问题的规模和待处理数据的形态。
设n是描述问题规模的非负整数,下面程序片段的时间复杂度是(O(log2n))。
x=2;
while(x<n/2)
x=2*x;