数据结构与算法笔记 —— 向量

来源:互联网 发布:淘宝店铺红包怎么使用 编辑:程序博客网 时间:2024/06/05 14:21

数据结构与算法笔记 —— 向量


一. 数据结构

  1. 抽象数据类型 = 数据模型 + 定义在该模型上的一组操作。特点:
    • 抽象定义
    • 外部的逻辑特性
    • 操作 & 语义
    • 不考虑时间复杂度
    • 不涉及数据的存储方式
  2. 数据结构是基于某种语言的数据抽象类型 (Abstructal Data Type, ADT) 的实现,特点:
    • 具体实现
    • 内部的表示与实现
    • 完整的算法
    • 多种实现
    • 与复杂度密切相关
    • 要考虑具体的存储机制
  3. 向量接口如下图:
    这里写图片描述

二. 可扩充向量

  1. 采用静态空间管理的缺点:
    • 上溢:分配的内存空间过小,而需要存储的内容过大
    • 下溢:分配的内存空间过大,降低了空间存储效率,浪费资源
  2. 动态空间管理策略:在即将发生溢出时,适当地扩大内部数组的容量
    • 递增式增长:属于O(n2),算法效率太低,但空间利用率高
    • 倍增式增长:属于O(n),算法效率高,但空间利用率 > 50% ,牺牲空间换取时间
  3. 平均分析是根据数据结构各种操作出现概率的分布,将对应的成本加权平均
    • 各种可能的操作作为独立事件分别考虑
    • 割裂了操作之间的相关性与连续性
    • 往往不能准确地评判数据结构和算法的真实性能
  4. 分摊平均是对数据结构连续地实施足够多次操作,所需总体成本分摊至单次操作
    • 从实际可行的角度,对一系列操作做整体的考量
    • 更加忠实地刻画了可能出现的操作
    • 可以更为准确地评判数据结构与算法的真实性能

参考文献

[1] 邓俊辉《数据结构》

0 0