数据结构之基本概念

  版权声明:本文参考了严蔚敏的《数据结构》。未经作者允许,严禁用于商业出版,否则追究法律责任。网络转载请注明出处,这是对原创者的起码的尊重!!!


1 基本概念

  • 数据:数据是信息的载体,是描述客观事物属性的数、字符、以及能被输出计算机并被计算机程序处理和识别的符号的集合

  • 数据元素:数据的基本单位,数据项是数据的最小单位。

  • 数据对象:具有相同性质的数据元素的集合。

  • 数据类型:一个值的集合和定义在集合上的一组操作的总称。

    • 原子类型:其值不可以再分的数据类型。
    • 结构类型:其值可以再分为若干成分的数据类型。
    • 抽象数据类型:一个数学模型和定义再该模型上的一组操作。
  • 数据结构:数据元素相互之间的关系。

    • 逻辑结构:
      • 集合:除同属一个集合外,别无其它关系
      • 线性结构:一对一(最多有一个前驱,最多有一个后继)
      • 树:一对多(最多有一个前驱,可有多个后继)
      • 图 :多对多(可有多个前驱,可有多个后继)
    • 存储结构(物理结构):数据元素的表示和关系的表示
      • 顺序存储:把逻辑相邻的元素存放在物理也相邻的存储单元里,元素之间的关系由存储单元的邻接关系来表示
        • 优点:随机存取,每个元素占用最少的存储空间
        • 缺点:只能使用相邻的一整块存储空间,会产生外部碎片
      • 链接存储:不要求逻辑上相邻的元素在物理上也相邻,借助只是元素存储地址的指针来表示元素之间的关系。
        • 优点: 不会产生外部碎片
        • 缺点:指针占用额外空间,只能顺序存取
      • 索引存储:在存储元素信息的同时,还建立附加的索引表。
        • 优点:检索速度快
        • 缺点:索引表占用额外空间,增删元素时要同时修改索引表
      • 散列存储:根据元素的关键字直接计算出元素的存放地址。
        • 优点: 检索、增删元素都很快
        • 缺点:散列函数容易出现冲突
    • 数据的运算
      • 运算的定义:针对逻辑结构
      • 运算的实现:针对存储结构

2 算法和算法评价

  • 算法:对特定问题的求解步骤的一种描述。

  • 算法的特点

    • 有穷性:在有穷步骤和有穷时间内完成
    • 确定性:相同输入只能得到相同输出
    • 可行性:算法描述的操作可以通过已经实现的基本运算执行有限次数来实现
    • 零个或多个输入
    • 一个或多个输出
  • 算法的目标

    • 正确性
    • 可读性
    • 健壮性
    • 时间和空间开销都尽可能小
  • 算法评价

    • 时间复杂度:最坏时间复杂度、平均时间复杂度、最好时间复杂度。不仅依赖于问题规模n,也依赖于输入数据的性质。
      • O(1)2)3)k)n)n)
    • 空间复杂度:
      • 原地工作:算法所需辅助空间是常量

  版权声明:本文参考了严蔚敏的《数据结构》。未经作者允许,严禁用于商业出版,否则追究法律责任。网络转载请注明出处,这是对原创者的起码的尊重!!!


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