Data Structure——Introduction

1. 数据结构

  • 数据:分为数值型和非数值型
  • 数据元素:数据处理的最小单位
    e.g student 是一个数据,student.age 是一个数据元素
  • 数据结构:逻辑结构+存储结构+基本操作

1.1 逻辑结构

指元素间关系:

  • 集合关系:没什么关系
  • 线性关系:一对一
  • 树形关系:一对多
  • 图关系:多对多

相应的基本操作:

  • 创建、删除数据结构
  • 元素的增删改查
  • 遍历每一个元素

1.2 存储结构

  • 数组:元素间关系以存储空间连续性表示
  • 链表:元素间关系以指针表示

常见的存储方式:

  • 顺序存储:用连续的空间存储。
    优点:可以直接通过序号访问。
    缺点:预先声明数组占用空间的大小,需要连续内存空间,对插入和删除效率低
  • 链式存储:元素间关系显示存储,占用内存空间不连续
    优点:动态增加或缩短链表长度,插入删除高效,存储利用率高
    缺点:无法通过序号直接访问而要从头遍历,消耗一个指针域空间
  • 除此之外还有索引存储和散列存储

2. 算法

5个特性:确定性,有穷性,可行性,有输入,有输出

基本要求:正确性,可读性,健壮性(注意边界条件和特殊值),时间效率,空间效率

2.1 时间复杂度

  • 用基本语句执行次数度量运行时间
  • 执行次数称为时间频度,与处理的数据规模n有关。如有分支语句,按照执行语句多的分支计算
  • 时间复杂度:由频度函数的最高次项决定,不带系数
  • 计算方法:找与n有关的循环语句
  • 时间复杂度到达立方阶:顽性算法;常量级到平方阶:易性算法
  • 求和定理:T1(n)+T2(n)=O(MAX(f(n),g(n))
  • 求积定理:T1(n)×T2(n)=O(f(n)×g(n))
  • 不存在时间复杂度低于o(n)的数组排序算法
  • 时间复杂度分为最好、最坏和平均时间复杂度。通常以最坏情况作为算法的时间复杂度

![[1-常见时间复杂度数量级.png]]
![[1-各数据结构基本操作时间复杂度.png]]

2.2 空间复杂度

  • 算法程序和待处理数据在内存中的存储是无法避免的,通常更关注处理数据的过程中一些额外的辅助空间

Data Structure——Introduction
http://chenjiayi0505.github.io/2026/07/02/数据结构 第一章 绪论/
作者
Jiayi Chen
发布于
2026年7月2日
更新于
2026年7月2日
许可协议