二叉树时间复杂度计算方法_二叉树时间复杂度计算方法是什么

二叉树时间复杂度计算方法_二叉树时间复杂度计算方法是什么二叉树——初识链表 ——> 二叉树 ——> 二叉查找树 ——>  平衡二叉树二叉树时间复杂度:O(logn) ,即2^x(树的深度)=N如:21亿点需要查找几次:2^3

二叉树——初识
  链表 ——> 二叉树 ——> 二叉查找树 ——>  平衡二叉树

  二叉树时间复杂度:O(logn) ,即2^x(树的深度)=N

  如:21亿点需要查找几次:2^32 = 21亿,查找32次。

  1、满二叉树

  二叉树时间复杂度计算方法_二叉树时间复杂度计算方法是什么

  2、完全二叉树:设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边。(除最后一层外,为一颗满二叉树)

  二叉树时间复杂度计算方法_二叉树时间复杂度计算方法是什么

  完全二叉树的基础上可以引申出 堆(heap) 的数据结构:

  堆的定义:堆就是一个数组,用来存放完全二叉树。

  大堆:所有 根节点值 均大于 左右孩子节点值

  小堆:所有 根节点值  均小于 左右孩子节点值

  如何理解数组存放完全二叉树?堆排序:

  arr = [3, 1, 4, 2, 5]  arr[0] 为堆顶。

  直接手撕代码:

  平均时间复杂度:O(nlogn) ,堆常用于topk算法,大顶堆求小值(前k个最小的值),小顶堆求大值(前k个最大的值)

  3、二叉排序树(二叉查找树)的定义:

  某结点左子树的所有结点的值都小于该节点的值且该结点右子树的值都大于该节点的值

  二叉树时间复杂度计算方法_二叉树时间复杂度计算方法是什么

  !!!二叉排序树的使用性质:中序遍历后是一个有序数组。

  区别:

  (1)   二叉排序树是为了实现动态查找而设计的数据结构,它是面向查找操作的,在二叉排序树中查找一个结点的平均时间复杂度是O(log n);

  (2)   堆是为了实现排序而设计的一种数据结构,它不是面向查找操作的,因而在堆中查找一个结点需要进行遍历,其平均时间复杂度是O(n)。

  4、平衡二叉树是特殊的二叉排序树

  改进版:平衡二叉树 AVL 为了尽量降低树的高度,平均查找长度越小,查找速度越快

  平衡因子 = 左子树的高度 – 右子树的高度

  平衡二叉树的条件:

  1、是二叉排序树

  2、满足每个结点的平衡因子绝对值不大于1

  二叉树时间复杂度计算方法_二叉树时间复杂度计算方法是什么

  平衡二叉树的平衡调整:

  左旋如下:

  S结点上提,E结点下降,伴随指针向左滑动

  二叉树时间复杂度计算方法_二叉树时间复杂度计算方法是什么

  二叉树时间复杂度计算方法_二叉树时间复杂度计算方法是什么

  二叉树时间复杂度计算方法_二叉树时间复杂度计算方法是什么

  右旋示例:

  二叉树时间复杂度计算方法_二叉树时间复杂度计算方法是什么

  5、红黑树:寻找相对平衡的二叉树

  二叉树时间复杂度计算方法_二叉树时间复杂度计算方法是什么

  1.每个结点要么是红的要么是黑的。

  2.根结点是黑的。

  3.每个叶结点(叶结点即指树尾端NIL指针或NULL结点)都是黑的。

  4.如果一个结点是红的,那么它的两个儿子都是黑的。

  5.对于任意结点而言,其到叶结点树尾端NIL指针的每条路径都包含相同数目的黑结点。

  红黑树变换:

  1、改变颜色:红变黑、黑变黑

  2、左旋、右旋

  二叉树时间复杂度计算方法_二叉树时间复杂度计算方法是什么

激活谷谷主为您准备了激活教程,为节约您的时间请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/94160.html

(0)
上一篇 2024年 5月 27日 上午7:10
下一篇 2024年 5月 27日 上午7:21

相关推荐

  • oracle游标的四个属性_oracle中游标的属性

    oracle游标的四个属性_oracle中游标的属性152 DBMS_SQL152.9 Summary of DBMS_SQL SubprogramsThis table lists the subprograms and briefly describes

    激活谷笔记 2024年 5月 25日
  • github代理访问_github快速访问

    github代理访问_github快速访问提高国内访问 GitHub 的速度的 9 种方案首先推荐两个我自己学习计算机七八年以来的经验&资源汇总开源仓库: 第一个仓库:一个很长的免费经典计算机PDF仓库,基本上你见过的PDF电子书基本都能

    2024年 5月 11日
  • overleaf怎么导出tex文件_overleaf如何导出LaTeX代码

    overleaf怎么导出tex文件_overleaf如何导出LaTeX代码Online LaTeX Editor——Overleaf使用(全网最详细过程)在Overleaf在线LaTeX编辑器中,可以使用不同的命令来排版图片,并设置列和列之间的距离。要排版图片,首先需要加载包含图片的graphicx宏包。可以

    激活谷笔记 2024年 5月 8日
  • win7系统gpedit策略没有权限_win7系统gpedit策略没有权限打开

    win7系统gpedit策略没有权限_win7系统gpedit策略没有权限打开win7系统gpedit.msc打不开组策略编辑器如何解决【详解】很多用户都不知道gpedit.msc的启动是依靠mmc控制台,如果mmc出现了问题,那么就会直接导致组策略无法正常使用,最近有位win7系统用户就遇到了了gpedit.msc打不开组策略编辑器的情况,用户不知道怎么解决这个问题

    2024年 5月 24日
  • cmalloc头文件_头文件cmath

    cmalloc头文件_头文件cmathmalloc 函数详解很多学过C的人对malloc都不是很了解,知道使用malloc要加头文件,知道malloc是分配一块连续的内存,知道和free函数是一起用的。但是但是:一部分人还是将:malloc当作

    2024年 5月 29日
  • linux线程同步机制_linux 线程同步

    linux线程同步机制_linux 线程同步并发编程的利器:探索Linux线程同步方法一、概念解析我们在工作中会经常遇到线程同步,那么到底什么是线程同步呢,线程同步的本质是什么,线程同步的方法又有哪些,为什么会有这些方法呢?在回答这些问题之前,我们先做几个名词解释,以便建立共同的概念基础。1.1 名词解释CPU: 本文中的CPU

    2024年 6月 2日
  • xshell6是什么软件_xshell怎么删除文件

    xshell6是什么软件_xshell怎么删除文件6个月软件测试培训出来后的感悟写给正在迷茫是否要转行或去学软件测试的学弟们本人刚从某培训机构学习结束,现在已经上班一个月了。这篇文章我不会说太多的知识点,或噱人去培训机构学习的话语,仅作为一个普通打工者的身份,来写给那些对于软件测试未来发展、薪资待遇等不清楚的正在

    2024年 5月 12日
  • flashplayer是什么软件_flashplayer是什么软件在哪安装

    flashplayer是什么软件_flashplayer是什么软件在哪安装逃离方块剧院(Cube Escape Theatre)游戏介绍Adobe_Flash_Player一剑全清__V4是一款专门用于彻底卸载Adobe Flash Player的软件工具,软件用户界面友好,操作步骤简单,

    2024年 5月 22日
  • xcode90047

    xcode90047Xcode for Mac是Mac平台上用于OS X的集成开发环境的开发工具,Xcode Mac版为用户提供了全面的用户界面设计、编码、测试和调试的工作流程,Xcode Mac版还包含了Xcode IDE,Swift和Objective-C编译器,开发人员开发应用程序更加高效便捷,但是要注意,

    激活谷笔记 2024年 5月 18日
  • ubuntu进入recovery mode_ubuntu recovery menu

    ubuntu进入recovery mode_ubuntu recovery menu详解在 Ubuntu 中引导到救援模式或紧急模式 | Linux 中国这篇教程将介绍如何在 Ubuntu 22.04、20.04 和 18.04 LTS 版本中引导到救援模式或紧急模式。来源:https://linux.cn

    2024年 5月 10日
  • 医学缩写dhb是什么意思_医学上dh是什么意思

    医学缩写dhb是什么意思_医学上dh是什么意思多情自古空余恨是什么意思意思为:用情过多,难免烂情,也难免会自作多情,得不到应有的回应,留下自我伤心。全诗为:多情自古空余恨,好梦由来最易醒。岂是拈花难解脱,可怜飞絮太飘零。香巢乍结鸳鸯社,新句犹书翡翠屏。不为别离肠已断,泪痕也满旧衫青。

    激活谷笔记 2024年 5月 26日
  • html js css的关系_html,js,css有什么区别

    html js css的关系_html,js,css有什么区别HTML、CSS、JavaScript的关系Web前端三剑客:分别是HTML、CSS、JavaScript,它们看上去是三种不同的技术,但在实际中却是相互搭配使用的。一、HTML超文本标记语言,HTML是一门描述性语言1、HTML是用来标记内容的(重在内容组织上)2、HTML是超文本标

    激活谷笔记 2024年 5月 31日
关注微信