注:本文仅为笔记。

原文

极客时间 - 数据结构与算法之美 - 04 | 复杂度分析(下):浅析最好、最坏、平均、均摊时间复杂度

最好、最坏时间复杂度

略,比较容易分析。

平均时间复杂度

需考虑概率来计算。

概率论中的加权平均值,也叫作期望值,所以平均时间复杂度的全称应该叫加权平均时间复杂度或者期望时间复杂度

均摊时间复杂度

均摊时间复杂度及对应的摊还分析法。

对一个数据结构进行一组连续操作中,大部分情况下时间复杂度都很低,只有个别情况下时间复杂度比较高,而且这些操作之间存在前后连贯的时序关系,这个时候,我们就可以将这一组操作放在一块儿分析,看是否能将较高时间复杂度那次操作的耗时,平摊到其他那些时间复杂度比较低的操作上。而且,在能够应用均摊时间复杂度分析的场合,一般均摊时间复杂度就等于最好情况时间复杂度。

// 全局变量,大小为 10 的数组 array,长度 len,下标 i。
int array[] = new int[10];
int len = 10;
int i = 0;// 往数组中添加一个元素
void add(int element) {if (i >= len) { // 数组空间不够了// 重新申请一个 2 倍大小的数组空间int new_array[] = new int[len*2];// 把原来 array 数组中的数据依次 copy 到 new_arrayfor (int j = 0; j < len; ++j) {new_array[j] = array[j];}// new_array 复制给 array,array 现在大小就是 2 倍 len 了array = new_array;len = 2 * len;}// 将 element 放到下标为 i 的位置,下标 i 加一array[i] = element;++i;
}

算法 - 最好、最坏、平均复杂度相关推荐

  1. 各排序算法最好最坏平均情况下的时间复杂度

    方式: 平均 最坏 最好 插入 n^2 n^2 n 希尔 n^1.3 / / 冒泡 n^2 n^2 n 快速 nlogn n^2 nlogn 选择 n^2 n^2 n^2 堆排 nlogn nlogn ...

  2. 快速排序:最好,最坏以及平均复杂度推导理解

    算法简介: 快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为较小和较大的2个子序列,然后递归地排序两个子序列. 步骤为: 挑选基准值:从数列中挑出一个元素,称 ...

  3. js 冒泡排序_JS 里的简易算法和数据结构之复杂度

    原文:https://www.freecodecamp.org/news/the-complexity-of-simple-algorithms-and-data-structures-in-java ...

  4. 详细分析冒泡排序、选择排序、插入排序(最好/最坏/平均时间复杂度(有序度)、稳定性、内存消耗(原地排序))

    如何分析排序算法 最好.最坏.平均时间复杂度 算法的时间复杂度,会随着排序集合的有序性而改变.我们需要分析不同算法在不同数据下的表现 最好时间复杂度:在完全有序的情况下的时间复杂度(满有序度) 最坏时 ...

  5. 最佳适应算法和最坏适应算法_算法:好,坏和丑陋

    最佳适应算法和最坏适应算法 by Evaristo Caraballo 通过Evaristo Caraballo 算法:好,坏和丑陋 (Algorithms: The Good, The Bad an ...

  6. 二分法采用五五分平均复杂度最小(相比四六分或三七分等)的定量证明方法

    二分法采用五五分平均复杂度最小(相比四六分或三七分等)的定量证明方法   有一天晚上我深夜失眠,躺在床上辗转反侧,无法入睡.在床上滚来滚去,觉得十分无聊,不知怎么的想起了二分法.这是我们解决数据结构或 ...

  7. 详解利用基于gensim的TF-IDF算法实现基于文本相似度的推荐算法

    详解利用基于gensim的TF-IDF算法实现基于文本相似度的推荐算法 TF-IDF的基本原理 算法思想 计算公式 相似度计算原理 微型图书推荐案例 案例背景 开发工具 数据预处理 TF-IDF模型建 ...

  8. 用循环首次适应算法、最佳适应算法和最坏适应算法,模拟可变分区存储管理,实现对内存区的分配和回收管理

    湖南师范大学 信息科学与工程学院 操作系统课程实验报告 实验项目名称: 可变分区存储管理 题目 实验一.可变分区存储管理 一.实验目的: 加深对可变分区存储管理的理解: 提高用C语言编制大型系统程序的 ...

  9. 3.1.5 操作系统之动态分区分配的四种算法(首次适应算法、最佳适应算法、最坏适应算法、临近适应算法)

    文章目录 0.思维导图 1.首次适应算法 2.最佳适应算法 3.最坏(大)适应算法 4.临近适应算法 5.四种算法归纳比较 0.思维导图 本篇文章是对上一篇文章内存的分配与回收提到的动态分区分配算法的 ...

最新文章

  1. python动态时钟代码_python实现简易动态时钟
  2. 错误:android.util.SuperNotCalledException
  3. RPM 包相关命令详解
  4. CCF201409-2 画图 java(100分)
  5. 长语音识别体验_如何为语音体验写作
  6. javafx8配置参数列表
  7. vue导入静态js_vue引入静态js文件的方法
  8. 拓端tecdat|matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类
  9. 极客大学架构师训练营 框架开发 模式与重构 JUnit、Spring、Hive核心源码解析 第6课 听课总结
  10. Android模拟器
  11. java 文件递归删除文件夹_JAVA利用递归删除文件和文件夹
  12. 大一上计算机期末试题,大一计算机期末考试试题及答案
  13. “小case”在英语中的10种说法
  14. Cartographer 源码解析1.1 —— 算法整体结构
  15. Java如何实现网页截图?
  16. CTF线下攻防赛总结
  17. sqli-labs第十三关--十五关
  18. Linux下基于UDP协议实现的聊天室项目(附源码)
  19. 1007 Maximum Subsequence Sum (25 分) java 题解
  20. 春意盎然、万物复苏、朝气蓬勃~

热门文章

  1. 《极限挑战》罗志祥遭套路“破产”,我们却看到了更大的危机
  2. 关掉可穿戴部门后,英特尔还将调整自动驾驶业务
  3. 监控告警满飞天,运维在家睡到自然醒...
  4. 听说你有10年的工作经验?还是你把1个经验反复用了10年?
  5. Linux 进程必知必会
  6. fastjson到底做错了什么?为什么会被频繁爆出漏洞?
  7. 用好 Git 和 SVN,轻松驾驭版本管理
  8. 【廖雪峰python入门笔记】变量
  9. 代码详解 | 用Pytorch训练快速神经网络的9个技巧
  10. 火爆 GitHub!这个图像分割神器究竟有什么魅力?