1.1数据结构的定义
- 数据对象在计算机中的组织方式有 1:1 1:n n:n
逻辑结构->集合、线性结构(1:1)、树形结构(1:n)、图形结构(n:n)
存储结构 - 数据对象必定与一系列加在其上的操作相关联
- 算法: 完成这些操作所用的方法
存储结构的几种优缺点
- 顺序存储结构:
优点:存储效率高,没有占用额外的空间(逻辑上相邻,物理上也相邻)
缺点:不便于数据修改,插入或删除操作需移动一系列元素 - 链式存储结构:
优点:便于数据修改,插入或删除元素仅需修改相应结点的指针域(逻辑相邻元素,物理存储位置不一定相邻)
缺点:与顺序相比,存储空间利用率低,因为分配的存储单元有部分用来存储结点之间的逻辑关系 - 索引存储结构:
特点:索引存储结构是用结点的索引号来确定结点存储地址
优点:检索速度快
缺点:缺点是增加了附加的索引表,会占用较多的存储空间 - 哈希(散列)存储结构
特点:用散列法存储的线性表被称为哈希表,使用的函数被称为散列函数或者哈希函数,f(k)被称为散列地址或者哈希地址。通常情况下,散列表的存储空间是一个一维数组,而其哈希地址为数组的下标
优点:查找速度快
缺点:只存储元素的数据,不存储元素之间的逻辑关系
算法(Algorithm)
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。
- 算法的五个特性:有穷性,确定性,可行性,输入和输出。
- 算法的四个特征:正确性,可读性,健壮性,效率与地存储需求
算法的时间复杂度和空间复杂度
1.常用的时间复杂度比较关系为
O(1) <= O(log2(n)) <= O(n) <= O(nlog2(n)) <= O(n2) <= O(n3) ..... <=O(nk) <= O(2(n))
2.具体步骤
1)确定算法中的基本操作以及问题的规模。
2)根据基本操作执行情况计算出规模n的函数f(n),并确定时间复杂度为T(n)=Of(n)中增长最快的项/此项的系数。
一般依照使得基本操作执行次数最多的输入来计算四件复杂度,即将最坏的情况最为算法时间复杂度的度量。
时间复杂度分析与空间复杂度分析详见课本