数据结构与算法 第一章绪论

教材:《数据结构与算法》第四版 罗文劼

 知识重点:基于b站青岛大学王卓老师的网课

1、数据结构的基本概念

  • 数据:信息的载体
  • 数据项:是数据不可分割的最小单位
  • 数据元素:是数据的基本单位
    • 一个数据元素由若干个数据项组成
  • 数据对象(数据元素类):具有相同性质的数据元素的集合
  • 数据结构:相互之间存在着一种或多种关系的数据元素的集合
  • 抽象数据类型 = 数据的逻辑结构 + 抽象运算(运算的功能描述)

2、数据结构的分类

  • 数据的逻辑结构
    • 集合:属于同一个集合
    • 线性结构:存在一对一的关系
    • 树形结构:存在一对多的关系
    • 图形结构(网状结构):存在多对多的关系
  • 数据的存储结构
    • 顺序存储方法:把逻辑上相邻的元素存储在物理位置相邻的存储单元中,结点间的逻辑关系由存储单元的邻接关系来体现
    • 链式存储方法:对逻辑上相邻的元素不要求其物理位置相邻,元素间的逻辑关系通过附设的指针字段来表示
    • 索引存储方法
    • 散列存储方法
  • 数据的运算
    • 引用型运算:不改变数据结构中原有的数据元素的状态
    • 加工型运算:改变数据结构中原有的数据元素的状态

3、算法

  • 算法的特性
    • 有穷性:必须在有限时间内完成
    • 确定性:算法的每一步必须有确切的定义,无二义性
    • 可行性:每一步都可以通过已经实现的基本运算的有限次执行得以实现
    • 输入:具有零个或多个输入
    • 输出:具有一个或多个输出
  • 算法的要求
    • 正确
    • 可读
    • 健壮:当输入不合法数据后,算法能做适当处理
    • 高效
  • 算法的描述
    • 自然语言
    • 程序流程图
    • N-S图
  • 算法的性能分析(时间效率和空间效率有时候是矛盾的)
    • 时间复杂度
    • 空间复杂度

4、时间复杂度

  • 算法时间效率的度量方法

    • 事后统计
    • 事前分析数据结构与算法 第一章绪论_第1张图片
  • 取决因素
    • 硬件的速度
    • 书写程序的语言
    • 编译程序所生成目标代码的质量
    • 问题的规模
  • 定义

    • 数据结构与算法 第一章绪论_第2张图片
    • 最坏时间复杂度:在最坏情况下(执行完所有),算法的时间复杂度
      • 一般总考虑最坏情况下的时间复杂度 
    • 平均时间复杂度:在所有可能输入实例在等概率出现的情况下,算法的期望运行时间
    • 最好时间复杂度:在最好情况下(执行一次 ),算法的时间复杂度
  • 计算规则
    • 加法规则
    •   乘法规则
  • 算法时间效率的比较
    • 数据结构与算法 第一章绪论_第3张图片

       

     

  • 定理1
    • 数据结构与算法 第一章绪论_第4张图片
    •  忽略所有低次幂和最高次系数,体现出增长率的含义数据结构与算法 第一章绪论_第5张图片
    • 时间复杂度是嵌套最深层语句的频都所决定的 

例题1

数据结构与算法 第一章绪论_第6张图片

 例题2

数据结构与算法 第一章绪论_第7张图片

5、空间复杂度

  • 定义:算法所需存储空间的度量 
  • 占据的空间
    • 算法本身要占据的空间,输入/输出、指令、常数、变量
    • 算法要使用的辅助空间

例题1

数据结构与算法 第一章绪论_第8张图片

总结:

1、数据结构的基本概念要了解清楚

2、时间、空间复杂度要弄懂,当自己编程时,时间空间复杂度要尽可能的小,程序的运行时间才会更快 

你可能感兴趣的:(数据结构与算法,数据结构)