算法的分析包括两部分内容:
1. 时间复杂度;
2. 空间复杂度。

1. 空间复杂度分析

1.1 装填因子(load factor)

我们以向量(Vector)的实现为例。向量实际规模与其内部数组容量的比值,即 _size/_capacity,亦称作装填因子,它是衡量空间利用率的重要指标。

所以动态内存管理的一大目标即是:

如何才能保证向量的装填因子既不至于超过1,也不至于太接近于0?

导致抵效率的另一种情况是,向量的实际规模(_size)可能远远小于内部数组的容量(_capacity)。比如在连续的一系列操作过程中,若删除操作远多于插入操作,则装填因子极有可能远远小于100%,甚至非常接近于0. 当装填因子低于某一阈值时,我们称数组发生了下溢(underflow)。
尽管下溢不属于必须要解决的问题,但在格外关注空间利用率的场合,发生下溢时,有必要适当缩减内部数组容量。

数据结构与算法的分析相关推荐

  1. 数据结构与算法--举例分析法- 栈的压入弹出序列

    举例分析 与上两篇问中画图方法一样,我们可以用举例模拟的方法思考分析复杂问题.当一眼不能看出问题的规律的时候,我们可以用几个具体的例子来模拟一下问题的过程.这样就和我们在程序出现问题时候的debug一 ...

  2. python数据结构和算法 时间复杂度分析 乱序单词检测 线性数据结构 栈stack 字符匹配 表达式求值 queue队列 链表 递归 动态规划 排序和搜索 树 图

    python数据结构和算法 参考 本文github 计算机科学是解决问题的研究.计算机科学使用抽象作为表示过程和数据的工具.抽象的数据类型允许程序员通过隐藏数据的细节来管理问题领域的复杂性.Pytho ...

  3. 数据结构与算法的分析 —— 渐进复杂度(三个记号)

    对于某些问题,一些算法更适合于用小规模的输入,而另一些则相反.幸运的是,在评价算法运行效率时,我们往往可以忽略掉其处理小规模问题时的能力差异,转而关注其在处理大规模数据时的表现.道理是显见的,处理大规 ...

  4. 数据结构与算法的分析 —— 平均时间复杂度 vs 分摊时间复杂度

    平均时间复杂度:假定各种输入实例的出现符合某种概率分布(如均匀独立随机分布)之后,进而估计出的加权时间复杂度均值. 分摊时间复杂度,纵观连续的足够多次操作,并将其间总体所需的运行时间分摊至各次操作.与 ...

  5. 记一次数据结构与算法作业:利用循环和递归输出1-N的正整数的程序分析比较

    随便记录一次数据结构与算法的分析作业,内容为分析循环和递归实现输出1-N的正整数的对比.从时间和空间上分析了两种方式实现的递归方法和循环区别. 一.数据记录图表 二.分析 第一张图表制作时由于在打游戏 ...

  6. 数据结构与算法-- 广度优先打印二叉树

    广度优先打印二叉树 题目:从上往下打印出二叉树的每一个节点,同一层节点按照从左到右顺序打印,例如下图中二叉树,依次打印出是8,6,10,5,7,9,11 如上题中二叉树的节点定义我们用之前文章 二叉树 ...

  7. 数据结构与算法--解决问题的方法-顺时针打印矩阵

    顺时针打印矩阵 题目输入一个矩阵,按照从外向里顺时针的顺序依次打印每一个数字.例如下案例: 如上图矩阵,顺时针打印:1,2,3,4,8,12,16,15,14,13,9,5,6,7,1,10 以上问题 ...

  8. 数据结构与算法--代码鲁棒性案例分析

    代码鲁棒性 鲁棒是robust的音译,就是健壮性.指程序能够判断输入是否符合规范,对不合要求的输入能够给出合理的结果. 容错性是鲁棒的一个重要体现.不鲁棒的代码发生异常的时候,会出现不可预测的异常,或 ...

  9. 数据结构与算法--代码完整性案例分析

    确保代码完整性 在撸业务代码时候,经常面对的是接口的设计,在设计之初,我们必然要先想好入参,之后自然会有参数的校验过程,此时我们需要把可能的输入都想清楚,从而避免在程序中出现各种纰漏.但是难免面面俱到 ...

最新文章

  1. win7 VS2008 编译luabind-0.9.1 动态库 静态库
  2. Java低级编程软件_JAVA语言说低级语言吗
  3. thinkphp的分页类
  4. 06-07 Jenkins中配置 Git 认证信息
  5. 【报告分享】2020直播电商分析报告-抖音VS快手.pdf(附下载链接)
  6. 【Python五篇慢慢弹】快速上手学python
  7. java获取applicationcontext_SpringBoot获取ApplicationContext
  8. python获取按键值_如何用按键获取刻度值?
  9. java并发:线程同步机制之计数器Exechanger
  10. 论文赏析[EMNLP19]用控制任务来设计并解释探测任务
  11. Multisim14仿真使用汇总
  12. 北京地铁站经纬度收集
  13. python手写实现均值滤波_python手写均值滤波
  14. 文档服务器 件排名,全国服务器排名
  15. K折交叉验证大集合(KFold 、Stratified k-fold、Group k-fold、StratifiedGroupKFold)
  16. 修改图片尺寸包括两种情况
  17. 水管工游戏:dfs(递归)
  18. 使用nodejs + wecharty打造你的个人微信机器人
  19. 可以把JPG图片转成PDF的格式转换器
  20. 腾讯短网址在线生成(url.cn短网址) 2020最新腾讯短网址生成api接口推荐

热门文章

  1. 5.3 同步操作和强制排序
  2. mysql对sql的支持并不是太好_MySQL数据库优化总结
  3. Sklearn——对数据标准化(Normalization)
  4. 春招你必须掌握的Python经典面试题(附赠简历模版)
  5. Qt之多线程编程初识
  6. 探索软件设计模式(二)
  7. tensorflow中如何进行可视化和减轻过拟合(转)
  8. ACdream区域赛指导赛之手速赛系列(7)
  9. sql server2012中使用convert来取得datetime数据类型样式(全)
  10. UIView Methods