当前位置: 首页 > news >正文

昆明自助建站模板适合企业员工培训的课程

昆明自助建站模板,适合企业员工培训的课程,建设银行网上银行网站打不开,.net 网站 iis 配置目录 00.BBST——平衡二叉搜索树01.AVL树02.AVL的插入2.1单旋——zig 与 zag2.2插入节点后的单旋实例2.3手玩小样例2.4双旋实例2.5小结 03.AVL的删除3.1单旋删除3.2双旋删除3.3小结 04.34重构05.综合评价AVL5.1优点5.2缺点 00.BBST——平衡二叉搜索树 本文是介绍众多平衡二叉搜…

目录

  • 00.BBST——平衡二叉搜索树
  • 01.AVL树
  • 02.AVL的插入
      • 2.1单旋——zig 与 zag
      • 2.2插入节点后的单旋实例
      • 2.3手玩小样例
      • 2.4双旋实例
      • 2.5小结
  • 03.AVL的删除
      • 3.1单旋删除
      • 3.2双旋删除
      • 3.3小结
  • 04.3+4重构
  • 05.综合评价AVL
      • 5.1优点
      • 5.2缺点

00.BBST——平衡二叉搜索树

本文是介绍众多平衡二叉搜索树(BBST)的第一篇——介绍AVL树。故先来引入BBST的概念。由于上一篇介绍的二叉搜索树(BST)在极度退化的情况下,十分不平衡,不平衡到只朝一侧偏,成为一条链表,复杂度可达 O ( n ) O(n) O(n),所以我们要在“平衡”方面做一些约束,以防我们的树结构退化得那么严重。

具体来说,含 n n n个节点,高度为 h h h的BST,若满足 h = O ( l o g 2 n ) h=O(log_2 n) h=O(log2n),则称为称为平衡二叉搜索树。

01.AVL树

AVL树是一种BBST(稍后会证明)。它约束自己是否平衡,主要靠一个指标——平衡因子。定义:平衡因子=左子树高度-右子树高度。如果满足 − 2 < 全部平衡因子 < 2 -2<全部平衡因子<2 2<全部平衡因子<2,则该AVL树处于平衡状态;否则,需要靠一系列措施,将其恢复平衡。

首先先证明AVL树满足BBST的要求,即 h = O ( l o g 2 n ) h=O(log_2 n) h=O(log2n)(下式)。我们可转而证明n=Ω(Φh)(即,AVL的节点数不会太少)
在这里插入图片描述

结论:高度为h的AVL Tree 至少有 fib((h+3)-1 个节点
证明:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

02.AVL的插入

插入一个节点会导致一串祖先的失衡,删除一个节点至多导致一个祖先失衡。但是,通过后续代码就可发现,删除节点比插入节点复杂的多。原因是,插入节点只要调整好了一处,这条路径上的所有祖先都可平衡,复杂度是O(1)。而删除节点是,调整好了一处平衡,另一处就会不平衡,自下而上层层调整,复杂度是O(n)

2.1单旋——zig 与 zag

zig 与 zag 分别对应右单旋和左单旋。单旋的操作改变的是两个节点的相对位置。改变的是三条线:一上一下一子树。新树根上行指向原根,新树根原子树给到原根。如下图,V到Y那去,Y到C那去。

在这里插入图片描述

2.2插入节点后的单旋实例

在下图处添加一个节点,自上而下更新高度(或平衡因子),g会率先进入不平衡状态。观察g,p,v呈一条线,而非“之”字,所以用单旋调整(之字形对应双旋)。具体来说,对g左单旋。
在这里插入图片描述

2.3手玩小样例

例题:将1,2,3,4,5,6依次插入空的AVL Tree,最终AVL Tree长成什么样?

过程:
首先正常插入1,2;插入3时,1是第一个发现不平衡的节点,zag(1),即对1进行左单旋,成功解决;正常插入4
在这里插入图片描述

插入5时,3是第一个发现不平衡的节点,zag(3),即对3进行左单旋,成功解决
在这里插入图片描述
插入6时,2是第一个发现不平衡的节点,zag(2),即对2进行左单旋,成功解决
在这里插入图片描述

2.4双旋实例

双旋的操作改变的是三个节点的相对位置。分为两种情况——zig-zag与zag-zig。

在下图处添加一个节点,自上而下更新高度(或平衡因子),g会率先进入不平衡状态。观察g,p,v呈“之”字,所以用双旋。具体来说,先zig§,再zag(g).
在这里插入图片描述

2.5小结

AVL树中插入节点引发失衡,经旋转调整后重新平衡,此时包含节点g,p,v的子树高度是不变的子树高度复原,更高祖先也必平衡,全树复衡。故在AVL树中修正插入节点引发的失衡不会出现失衡传播。

03.AVL的删除

删除一个节点至多导致一个祖先失衡。

3.1单旋删除

在这里插入图片描述

3.2双旋删除

在这里插入图片描述

3.3小结

AVL树中删除节点引发失衡,经旋转调整后重新平衡,此时包含节点g,p,v的子树高度有可能不变也有可能减小1,故在AVL树中修正删除节点引发的失衡有可能出现失衡传播。

04.3+4重构

通过观察以上插入和删除的结果示意图,发现结构是一样的——三个节点按顺序呈三角形,四个子树按原来的顺序分别挂在两个孩子节点的下边。(如下图)
在这里插入图片描述

那我们就不必关注具体的技巧了,而是将三个节点和四个子树拆开,像暴力组装魔方那样(先拆散)拼上。

05.综合评价AVL

5.1优点

  1. 查找、插入、删除,最坏时间复杂度为 O ( l o g n ) O(logn) O(logn)
  2. O ( n ) O(n) O(n)的存储空间

5.2缺点

  1. 需要额外维护高度或平衡因子这一指标(后续Splay Tree可改善这一问题)
  2. 删除操作后,最多需旋转 Ω ( l o g n ) \Omega(logn) Ω(logn)
  3. 单次动态调整后,全树拓扑结构的变化量可能高达 Ω ( l o g n ) \Omega(logn) Ω(logn) (RedBlack Tree可缩到 O ( 1 ) O(1) O(1)

谢谢观看~

http://www.yidumall.com/news/64420.html

相关文章:

  • 北京网站建设公系统优化软件哪个最好的
  • wordpress前台禁止下载文件百度搜索关键词排名人工优化
  • 重庆梁平网站建设费用爱战网关键词
  • 吕梁seo网站建设优化设计五年级下册数学答案
  • 定制网站建设服务平台seo工作室
  • 如何制作网页图片文字链接娄底地seo
  • 网站建设公司有多少钱竞价托管如何托管
  • 东莞静态网站制作网络推广 网站制作
  • 自己做挖矿网站合肥seo招聘
  • 给境外赌博网站做代理千万不要做手游推广员
  • 做survey的网站官网首页入口百度
  • 帝国cms7.0模板 绿色企业网站模板(整站带数据)软文营销写作技巧有哪些?
  • 沧州网站设计公司产品市场推广计划书
  • 网站文章不收录推广合作
  • 广州专业做网站网站空间费用一年多少
  • 免费的网站或软件百度推广销售员的工作内容
  • 网站建设与维护的案例今日搜索排行榜
  • 房产网站的全景图怎么做提升网站权重的方法
  • 做网站买域名要买几个后缀最安全广告联盟代理平台
  • 做问卷用哪个网站好网络视频营销平台
  • 17网站一起做网店登录百度网站app下载
  • 北京用网站模板建站免费做网站的平台
  • 微信网站公众平台怎样做推广更有效
  • 网站建设分为那几个模块长沙网站外包公司
  • 个人如何做网站软件工具
  • 如何在百度上找网站上海网络推广招聘
  • 网站如何做视频点播seo查询排名系统
  • 郑州大型网站大数据精准营销的策略
  • 厦门网站建设2015百度关键字优化
  • 台州电子商务网站开发东莞网络推广托管