数据结构与算法笔记 —— 向量
来源:互联网 发布:淘宝店铺红包怎么使用 编辑:程序博客网 时间:2024/06/05 14:21
数据结构与算法笔记 —— 向量
一. 数据结构
- 抽象数据类型 = 数据模型 + 定义在该模型上的一组操作。特点:
- 抽象定义
- 外部的逻辑特性
- 操作 & 语义
- 不考虑时间复杂度
- 不涉及数据的存储方式
- 数据结构是基于某种语言的数据抽象类型 (Abstructal Data Type, ADT) 的实现,特点:
- 具体实现
- 内部的表示与实现
- 完整的算法
- 多种实现
- 与复杂度密切相关
- 要考虑具体的存储机制
- 向量接口如下图:
二. 可扩充向量
- 采用静态空间管理的缺点:
- 上溢:分配的内存空间过小,而需要存储的内容过大
- 下溢:分配的内存空间过大,降低了空间存储效率,浪费资源
- 动态空间管理策略:在即将发生溢出时,适当地扩大内部数组的容量
- 递增式增长:属于
O(n2) ,算法效率太低,但空间利用率高 - 倍增式增长:属于
O(n) ,算法效率高,但空间利用率 > 50% ,牺牲空间换取时间
- 递增式增长:属于
- 平均分析是根据数据结构各种操作出现概率的分布,将对应的成本加权平均
- 各种可能的操作作为独立事件分别考虑
- 割裂了操作之间的相关性与连续性
- 往往不能准确地评判数据结构和算法的真实性能
- 分摊平均是对数据结构连续地实施足够多次操作,所需总体成本分摊至单次操作
- 从实际可行的角度,对一系列操作做整体的考量
- 更加忠实地刻画了可能出现的操作
- 可以更为准确地评判数据结构与算法的真实性能
参考文献
[1] 邓俊辉《数据结构》
0 0
- 数据结构与算法笔记 —— 向量
- 算法与数据结构--向量
- 【数据结构与算法学习笔记】PART2 向量(接口与实现,可扩充向量,无序向量,有序向量)
- 数据结构与算法---向量使用
- 数据结构与算法 —— 向量的扩容策略与分摊时间复杂度
- 数据结构及算法分析——(有序向量唯一化)笔记一
- 数据结构与算法笔记 —— 绪论
- Unity3D_算法与数据结构(向量)
- 【数据结构与算法学习笔记】PART3 线性结构(除向量外,数组、栈、队列、链表)
- 数据结构笔记-----数据结构与算法
- 数据结构与算法笔记
- 算法与数据结构笔记
- 数据结构与算法学习笔记——quick sort
- 数据结构与算法学习笔记——队列
- 数据结构与算法学习笔记——堆排序
- 数据结构与算法学习笔记——线性表
- 数据结构与算法分析笔记(4)——递归
- 数据结构与算法——笔记(1)概念
- PAT1048数字加密(20)
- HDU 2176 取(m堆)石子游戏 (尼姆博弈)
- 做产品分析时,问清楚这 60 个问题
- 如何让leftBarButtonItem与右滑手势兼得
- vs2010从win7 32改为win7 64位后生成出现错误
- 数据结构与算法笔记 —— 向量
- struts2 入门案例
- Android ProGuard 混淆 详解
- 如何提高ElasticSearch 索引速度
- SeaJS入门教程系列之SeaJS介绍(一)
- 课后作业:第二章案例分析
- JAVA代码实现MD5加密算法
- 126.View the Exhibit and examine the data in the PROJ_TASK_DETAILS table.
- fedora22 python3.4 django