栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

《数据结构 C++版》第二章、向量 Vector

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《数据结构 C++版》第二章、向量 Vector

本文为邓俊辉老师的《数据结构(C++版)》第三版学习笔记
全书代码示例下载:链接【点击跳转】

第二章:向量
  • 一、抽象类型数据结构
    • 1.接口与实现
    • 2.向量 ADT
    • 3.vector 析构与构造
    • 4.复制
    • 5. 习题![在这里插入图片描述](https://img-blog.csdnimg.cn/0ab1a057ffe348c7abd6337af4efedf5.png)
  • 二、可扩充向量
    • 1。固定向量的缺点
    • 2.动态空间管理
    • 3.递增式扩容
    • 4.加倍式扩容
    • 5. 分摊复杂度 (分摊分析法)
  • 三、无序向量
    • 1. 实现
    • 2.有序 逆序程度
    • 3.唯一性
    • 4.二分 O(logn) 减而治之

一、抽象类型数据结构 1.接口与实现
  • ADT 抽象数据类型
2.向量 ADT

array

3.vector 析构与构造

待学完补充 vector实现


4.复制

开辟可以大一点的空间,避免在接下来足够长的时间内,不会因为有必要扩容,而打断接下来计算过程。

5. 习题 二、可扩充向量 1。固定向量的缺点

2.动态空间管理

3.递增式扩容
  • 按固定增量进行扩容 时间复杂度 O( n 2 n^2 n2) 空间复杂度 O(n)
4.加倍式扩容
  • 按俩倍 进行扩容 时间复杂度 O(n) 空间复杂度 O(1)

对比 递增式扩容 << 加倍式扩容 (空间换时间)
装填因子=实际所用容量/最大容量。

5. 分摊复杂度 (分摊分析法)
  • 平均分析法 & 分摊分析法
三、无序向量 1. 实现

此处已要求 r< size 如果在实际中需要更为严格的处理
vector [] 重载

  • 插入操作 有可能会overflow 所以需要判断是否扩容
  • 删除操作 shrink 非必要 往往可以省略

  • 查找 O(n)

输入敏感: 最好与最坏的时间复杂度相差悬殊

  • 唯一化 去重 :保证 i 的前面的数都是互异的
  • 优化 排序 + 二分
  • 遍历 全局的通用性更强

2.有序 逆序程度

3.唯一性



感觉可以用二分 查找左右边界进行计算
迭代版本:

4.二分 O(logn) 减而治之

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1011261.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号