和左偏树几乎一模一样,唯一的区别是左偏树合并后判断如果左儿子深度小于右儿子则交换左右儿子,而斜堆直接无脑交换

复杂度是均摊的 O(nlog⁡n)O(n\log n)O(nlogn)

证明:

定义重结点为右儿子大小大于左儿子的结点,否则为轻结点。

定义右路径为一直往右走的路径,包不包含自己不重要。

定义势能 Φ\PhiΦ 为所有结点右路径上的重结点的个数之和。显然初始势能为 000,最终势能非负。

考虑一次合并的两个点 u,vu,vu,v,设它们右路径上轻、重点个数分别为 lu,hu,lv,hvl_u,h_u,l_v,h_vlu​,hu​,lv​,hv​

那么这次合并的实际代价为 lu+hu+lv+hvl_u+h_u+l_v+h_vlu​+hu​+lv​+hv​

而在右路径上,一个重结点右儿子本来就比左儿子重,合并又发生在右儿子,交换后左儿子大于右儿子,所以合并后重结点一定会变轻结点。

考虑最坏情况,所有轻结点都变成重结点,势能增加量 ΔΦ=lu+lv−hu−hv\Delta \Phi=l_u+l_v-h_u-h_vΔΦ=lu​+lv​−hu​−hv​

均摊后的代价为实际代价+势能增加量,即 2(lu+lv)2(l_u+l_v)2(lu​+lv​)

显然右路径的轻结点个数为 log⁡\loglog 级别的,所以总复杂度为 O(nlog⁡n)O(n\log n)O(nlogn)

所以整棵树的深度还是没保证……

斜堆学习笔记+复杂度证明相关推荐

  1. AI Studio 飞桨 零基础入门深度学习笔记1-深度学习的定义

    AI Studio 飞桨 零基础入门深度学习-笔记 人工智能.机器学习.深度学习的关系 机器学习 机器学习的实现 机器学习的方法论 案例:牛顿第二定律 确定模型参数 模型结构介绍 深度学习 神经网络的 ...

  2. 传感器自学笔记第十一章——三色RGB学习笔记+高感度声音检测模块+KY-010光遮断传感器+TCRT5000循迹传感器+倾斜模块

    作者:GWD 时间:2019.06.28 三色RGB学习笔记(开关量类传感器) 一.学习要点:无 二.手册分析(开关量传感器) 1.产品用途:RGB LED 模块由一个贴片全彩 LED 制成,通过 R ...

  3. ESP32 WIFI MESH学习笔记9-百度IOT接入(服务器部分)

    系列文章目录 文章目录 系列文章目录 前言 一.百度IOT-Core 二.Core计费 三.IOT-Core设置 四.设备测试 前言 接入DFROBOT 的公用IOT服务还是比容易,但服务也较为简单, ...

  4. 吴恩达神经网络和深度学习-学习笔记-8-梯度消失与爆炸 + 梯度检测

    梯度消失与爆炸 介绍 直观理解是: 权重W只比1(即单位矩阵)大一点,深度神经网络的激活函数将爆炸式增长. 权重W只比1(即单位矩阵)小一点,深度神经网络的激活函数将指数式递减. 虽然我(吴恩达老师) ...

  5. 学习笔记9--深度前馈网络

    本系列博客包括6个专栏,分别为:<自动驾驶技术概览>.<自动驾驶汽车平台技术基础>.<自动驾驶汽车定位技术>.<自动驾驶汽车环境感知>.<自动驾驶 ...

  6. 学习笔记5-梯度爆炸和梯度消失(K折交叉验证)

    1.梯度消失.梯度爆炸 梯度消失和梯度爆炸 考虑到环境因素的其他问题 1.1 本次课程主要任务 了解学习梯度消失与梯度爆炸产生的原因以及怎么样解决. 考虑到环境因素的其他问题(协变量偏移,标签偏移,概 ...

  7. 吴恩达神经网络和深度学习-学习笔记-4-深度网络

    符号约定 L:网络的深度(隐藏层+输出层) n[1]:第一层隐藏层单元数,为5 a[1]:第一层的激活函数,=g[1](z[1]).另外我们认为x=a[0] 前向传播过程 对于单个的输入x: 简单来说 ...

  8. praat学习笔记——五度值分析(石峰T值法)

    一. 调域上下限的确定 语音录制了阴平"山".阳平"昨".上声"宝".去声"去"四个声调,每个声调用不同的字发了十遍音, ...

  9. BZOJ1112洛谷P3466 [POI2008]KLO-Building blocks(砖头)[对顶堆学习笔记]

    坑爹的BZOJ因为不让 输出方案我WA了若干次 据说正解是平衡树/线段树,我不会,就用了个新东西->对顶堆 对顶堆 一个维护中位数的东西,我们通过维护两个堆,来维所有数的中位数 (显然我们可以排 ...

最新文章

  1. matlab中textread 函数
  2. Angular JS - 9 - SeaJS加载js模块
  3. 点云三角化之后还能贴图嘛_雪糕化了之后重新冷冻还能吃吗?宁波这个实验真相了!...
  4. 基于Accord.Audio和百度语言识别
  5. linux安装之后缺少命令,Centos 7 最小安装后关键命令找不到 ifconfig等
  6. Dev Grid 添加行号
  7. NUAA 南航操作系统实验
  8. 【MATLAB教程案例22】基于MATLAB图像去噪算法仿真——中值滤波、高斯滤波以及频域滤波等
  9. html5网页设计-表单
  10. mac 建 android 签名,mac android app 签名工具
  11. 如何不授权情况下获取自己微信openid/傻瓜式获取
  12. 有免费且好用的云服务器推荐?
  13. 爆笑囧人囧事 2009 大合集!
  14. 移动硬盘无法识别是怎么回事?还能数据恢复吗?
  15. Openstack安装与部署三:本地源配置
  16. su linux pe,CГіmo encontrar individuos por su DNI en la red? GuГ­a transito a transito
  17. 高数考研归纳 - 微分学 - 中值定理
  18. Android深度开发第8章随笔感悟
  19. 极狐GitLab CI 月来袭!2小时 get CI 流水线设计秘籍
  20. 《数文明》阅读笔记-无匿名的追踪:天网的隐喻

热门文章

  1. 哈哈哈,弟弟被卡桶里了......
  2. 50款大数据分析神器 :你还在用Excel
  3. 1个月教你学会用Python实现机器学习
  4. java序列化有什么用_java中序列化的作用
  5. 光通信调制方式MATLAB仿真,基于LED的紫外光通信调制方式研究
  6. html5 svg组态图,绘制SVG内容到Canvas的HTML5应用
  7. oracle怎么删除lob对象,Oracle系列:LOB大对象处理
  8. php语言难点,PHP知识难点TOP3,挑战一下你
  9. promise 浏览器实现的源码_【大前端01-01】函数式编程与JS异步编程、手写Promise...
  10. java pojo 是什么_什么是POJO