数据结构基本概念

2021-11-03
3分钟阅读时长

数据结构基本概念

基本概念

  1. 数据是信息的载体,表现为能被计算机识别和处理的符号集合。
  2. 数据元素是数据的基本单位,用来描述个体。
  3. 数据项是构成数据元素的不可分割的最小单位。数据项可理解成个体的各项属性。
  4. 数据对象是相同性质数据元素的集合,即个体的集合。数据对象是数据的一个子集。
  5. 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

例如,要开发班级教务系统,则一个班级中的每个学生信息(个体)都是一个数据元素,每个学生信息包括学生的姓名、年龄等各种属性,这些属性是数据项。表示该班级的所有学生信息的集合即为数据对象。把这些数据对象组织起来并表示它们之间的关系,再加上相关的操作,即为数据结构。可以用一张表组织起来,或者用图表示,或者用树表示,等等。

综上所述,还能得到以下几点:

  1. 相同的数据元素,通过描述数据元素间不同的关系,可以组成不同的数据结构;
  2. 不同的数据元素,通过描述数据元素间相同的关系,可以组成相同的数据结构。

数据结构三要素

  1. 数据的逻辑结构

    逻辑结构表示数据间的逻辑关系。包括:

    1. 集合 同属一个集合
    2. 线性结构 一对一
    3. 树形结构 一对多
    4. 图状结构 多对多
  2. 数据的物理结构(存储结构)

    是数据结构在计算机中的表示。既要存储数据元素,又要存储它们之间的关系

    物理结构会影响存储空间分配的方便程度以及数据运算的速度。

    物理结构包括:

    1. 顺序存储

      连续存储,逻辑上相邻,物理上也相邻。

    2. 非顺序存储

      1. 链式存储
      2. 索引存储,建立索引表
      3. 散列存储,又称哈希存储
  3. 数据的运算

    1. 运算的定义是针对逻辑结构的
    2. 运算的实现是针对物理结构的

数据类型

数据类型是高级编程语言概念,是一个值的集合和定义在此集合上的一组操作的总称,如整型变量,实型变量,数组,结构体等。每个数据都属于某种数据类型。

抽象是抽取出实际问题的本质,抽象数据类型是由用户定义,表示具体的应用问题的模型,以及相应的操作的总称。

  1. 原子类型

    如年龄,值不可再分;

  2. 结构类型

    如设置学生结构体,分为姓名、年龄等等;

  3. 抽象数据类型

    三元组(数据对象、数据关系、基本操作集)

    特别地,抽象数据类型构成了一个完整的数据结构。

算法及评价

基本概念

算法是对特定问题求解步骤的一种描述,是指令的有限序列。

算法的重要特性(必要条件):

  1. 有穷性
  2. 确定性
  3. 可行性
  4. 输入 0个以上
  5. 输出 1个以上

”好“的算法的目标:

  1. 正确性
  2. 可读性
  3. 健壮性
  4. 高效率与低存储量需求

算法度量

时间复杂度

加法公式: $$ T(n)=T_1(n)+T_2(n)=O(f(n))+O(g(n))=O(max(f(x),g(x))) $$ 乘法公式: $$ T(n)=T_1(n)\times T_2(n)=O(f(n))\times O(g(n))=O(f(x)\times g(x)) $$ 渐进时间复杂度:

从左至右依次为常数阶、对数阶、线性阶、线性对数阶、K次方阶、指数阶。 $$ O(1)<O(log_2n)<O(n)<O(nlog_2n)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n) $$

空间复杂度

算法原地工作指的是辅助空间为常量,即$O(1)$。

Avatar

坐忘道琼峰 Sitting Oblivion Tao EndlessPeak

瞽者无以与乎文章之观,聋者无以与乎钟鼓之声。岂唯形骸有聋盲哉?