数据结构学习笔记——第一章 基本概念

无人久伴 提交于 2020-01-15 01:59:01

第一章 基本概念

1.1 什么是数据结构

1.1.1 关于数据组织

1.1.2 关于空间使用

1.1.3 关于算法效率

1.1.4 抽象数据类型

什么是数据结构?

  • 数据对象在计算机中的组织方式
    • 逻辑结构
    • 物理存储结构
  • 数据对象必定与一系列加在其上的操作相关联
  • 完成这些操作所用的方法就是算法

抽象数据类型(Abstract Data Type)

  • 数据类型
    • 数据对象集
    • 数据集合相关联的操作集
  • 抽象:描述数据类型的方法不依赖于具体实现
    • 与存放数据的机器无关
    • 与数据存储的物理结构无关
    • 与实现操作的算法和编程语言均无关
  • 只描述数据对象集和相关操作集“是什么”,并不涉及“如何做到”的问题

1.2 什么是算法

1.2.1 算法的定义

  • 算法(Algorithm)
    • 一个有限指令集
    • 接受一些输入(有些情况下不需要输入)
    • 产生输出
    • 一定在有限步骤之后终止
    • 每一条指令必须
      • 有充分明确的目标,不可以有歧义
      • 计算机能处理的范围之内
      • 描述应不依赖于任何一种计算机语言以及具体的实现手段

1.2.2 什么是好的算法

  • 空间复杂度 S(n)——根据算法写成的程序在执行时占用存储单元的长度
  • 时间复杂度 T(n)——根据算法写成的程序在执行时耗费时间的长度
  • 在分析一般算法的效率时,我们经常关注下面两种复杂度
    • 最坏情况复杂度 Tworst(n)(主要关心)
    • 平均复杂度 Tavg(n)
    • Tavg(n) ≤ Tworst(n)

1.2.3 复杂度的渐进表示

  • O(f(n)) 表示T(n)的某种上界(通常为可找到的最小的上界)
  • Ω(f(n)) 表示T(n)的某种下界(通常为可找到的最大的下界)
  • Θ(f(n)) 表示既是上界也是下界
    复杂度分析小窍门

1.3 应用实例

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!