范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

golang2021数据格式(75)堆的原理

     完全二叉树的定义、性质以及算法见正文,这里补充一点:完全二叉树是效率很高的数据结构,堆是一种完全二叉树或者近似完全二叉树,所以效率极高,像十分常用的排序算法、Dijkstra算法、Prim算法等都要用堆才能优化,几乎每次都要考到的二叉排序树的效率也要借助平衡性来提高,而平衡性基于完全二叉树。
  1 判断完全二叉树
  完全二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
  2 完全二叉树定义
  完全二叉树(Complete Binary Tree)
  若设二叉树的深度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第 h 层所有的结点都连续集中在最左边,这就是完全二叉树。
  完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树。
  一棵二叉树至多只有最下面的两层上的结点的度数可以小于2,并且最下层上的结点都集中在该层最左边的若干位置上,则此二叉树成为完全二叉树。
  3 完全二叉树特点
  叶子结点只可能在最大的两层上出现,对任意结点,若其右分支下的子孙最大层次为L,则其左分支下的子孙的最大层次必为L 或 L+1;
  出于简便起见,完全二叉树通常采用数组而不是链表存储,其存储结构如下:
  tree[n]: int {tree[0], tree[1]...tree[n-1]}
  对于tree[i],有如下特点:
  (1)若i为奇数且i>1,那么tree的左兄弟为tree[i-1];
  (2)若i为偶数且i1,tree的双亲为tree[i p 2];
  (4)若2*i<=n,那么tree的左孩子为tree[2*i];若2*i+1<=n,那么tree的右孩子为tree[2*i+1];
  (5)若i>n p 2,那么tree[i]为叶子结点(对应于(3));
  (6)若i<(n-1) p 2.那么tree[i]必有两个孩子(对应于(4))。
  (7)满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。
  完全二叉树第i层至多有2^(i-1)个节点,共i层的完全二叉树最多有2^i-1个节点。
  4 算法
  如果一棵具有n个结点的深度为k的二叉树,它的每一个结点都与深度为k的满二叉树中编号为1~n的结点一一对应,这棵二叉树称为完全二叉树。
  可以根据公式进行推导,假设n0是度为0的结点总数(即叶子结点数),n1是度为1的结点总数,n2是度为2的结点总数,由二叉树的性质可知:n0=n2+1,则n= n0+n1+n2(其中n为完全二叉树的结点总数),由上述公式把n2消去得:n= 2n0+n1-1,由于完全二叉树中度为1的结点数只有两种可能0或1,由此得到n0=(n+1)/2或n0=n/2。
  总结起来,就是 n0=[n/2],其中[]表示上取整。可根据完全二叉树的结点总数计算出叶子结点数。
  5 小根堆
  小根堆一般指最小堆
  堆是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于(或不小于)其左孩子和右孩子节点的值。(注意,这里对同兄弟结点没有要求)
  最大堆和最小堆是二叉堆的两种形式。
  最大堆:根结点的键值是所有堆结点键值中最大者。
  最小堆:根结点的键值是所有堆结点键值中最小者。
  而最大-最小堆集结了最大堆和最小堆的优点,这也是其名字的由来。
  最大-最小堆是最大层和最小层交替出现的二叉树,即最大层结点的儿子属于最小层,最小层结点的儿子属于最大层。
  以最大(小)层结点为根结点的子树保有最大(小)堆性质:根结点的键值为该子树结点键值中最大(小)项。
   
  6 原理过程
  如何建立这个堆呢。可以从空的堆开始,然后依次往堆中插入每一个元素,直到所有数都被插入(转移到堆中为止)。因为插入第i个元素的所用的时间是O(log i),所以插入所有元素的整体时间复杂度是O(NlogN),
  其实我们还有更快得方法来建立堆。它是这样的。
          直接把整数放入一个完全二叉树中(这里我们还是用一个一维数组来存储完全二叉树),然后通过直接的堆调整来完成排序,如下图(注:这里的图片来自哈工大李建中《算法设计与分析》课件)
  现在要完成6个整数{6,5, 14,7, 8, 1}的大根堆排序;
  这里左侧是建立完全二叉树,然后调整为大根堆结构; 开始的位置是第一个非叶节点及其子节点;
  上图是要排序时,将大根堆的根节点(这里是14)从二叉树中去掉,然后用最后一个叶子节点(这里是1)填充,变成了上图左侧的结构, 然后再调整为大根堆,就是上图右侧二叉树;
  下面几幅图操作相同.
   
   
   
   
  通过这个例子不难看出,主要思想是将大根堆的堆顶取出,放到数组的最后一个位置,将最后一个位置原来的数放到堆顶,然后对堆顶做调整;

整个市场崩溃之后,埃隆马斯克表示对加密货币的支持不温不火在经历了严重的市场低迷之后,这个周末可能会加速增长,今天早上在推文中,埃隆马斯克(ElonMusk)表达了对加密货币的温和支持。特斯拉首席执行官上周转而接受新车的比特币付款被指责为周小川数字人民币设计的目的和努力的方向没有想取代美元的地位清华大学五道口金融学院名誉院长周小川澄清关于数字货币的误解,包括中国的数字货币要替代美元的储备货币地位和国际上支付货币的地位把数字货币与人民币国际化密切挂钩DECP和eCNY想取代科学家警告需对奥密克戎变异株保持警惕参考消息网4月20日报道据阿根廷布宜诺斯艾利斯经济新闻网4月18日报道,尽管全球新冠肺炎新增死亡人数正在下降,但目前导致大多数病例的奥密克戎变异毒株继续在世界范围内传播。最新确定的手机内存有救了?微信安卓版更新,可分类清理,释放大量存储空间要说手机里最迟内存的App是哪个,大部分人都会说是微信。微信中的聊天记录视频照片小程序等等内容总会在不知不觉间吃掉你的内存,用得越久占用体积越大,动不动就几十个G。使得一部分内存小2022年苹果秋季发布会新品曝光!新款iPhone太惊艳了!快来看看大家好,欢迎来到法斗科技,众所周知苹果的发布会是一年一度,可谓更新周期极快,而苹果CEO蒂姆库克从2021年开始将发布会改为一年两次,而今年春季发布会上苹果为我们带来了iPhonevivoXNote初体验,蓝厂让我刮目相看,对标三星S22UItra一点不怂看惯了千篇一律的设计,今年终于来了一款让人能够提得起兴趣的骁龙8旗舰了,它就是vivoXNote,今年蓝厂反其道行之,跳脱出6。56。7英寸屏幕,推出了一款配备7英寸顶级曲面屏的大OPPO铺路,一加飞奔4月21日,一加手机的发布会有着诸多不寻常的信息。一加新系列Ace发布,Ace这个名字很容易让我们想起曾经的OPPOAce手机发布会上,一加中国区总裁李杰宣布,一加将入驻OPPO线iPhone13再降价,感兴趣的可以关注传送直达httpsu。jd。comZKEftMf苹果iPhone13256GB,京东售价6799元,参与满4000元减600元活动25日0点叠加以旧换新满1000元享93折优惠券,目前只要1000多块钱的几款骁龙870手机,优缺点很明显(一)兄弟们,自媒体的日子越来越难过了,点个关注看再不行就点个赞,求求兄弟们给个支持骁龙870是高通目前口碑最好的几款处理器之一,有这么几款手机,降价后,性价比进一步提升RedmiK40vivos15e上架,使用猎户座1080处理器,5000万像素主摄vivos15e上架,设计很熟悉,配置也曝光了。这个手机后置摄像头看起来有点oppok10的思路,不过s15e应该是后置双摄的思路,使用三星的猎户座1080处理器,这是一款x70p电脑机箱折腾后续原本是想把里面的l铁板上的主板切掉就OK了,没想到没有想的那么简单,把原装的挡板找小区门口的师傅切掉后拿门一装,发现机箱口边还有凸起的铁皮,挡板还是装不上,而且还发现铁上的孔位不对
全系多连杆独立后悬架皮质座椅,这款紧凑型轿车只要5。29万提起东南汽车,很多稍微年长的读者都不会陌生,因为有和三菱汽车的合作,它旗下的菱帅蓝瑟等紧凑型轿车在当时可谓红极一时。在结束与三菱汽车的合作之后,东南汽车的热度也就逐渐消退下来。不过自吸涡轮手动CVT随意选,这款7座SUV的起售价竟然6。79万风光S560是东风小康旗下的一款面向低端市场的紧凑型SUV。今年4月份,风光S560改款车型正式上市,2021款车型依旧主打高性价比和实用性。接下来就随小编一起了解一下这款车吧。210万出头的硬派SUV,功能齐全还带T,就是不能越野北京越野是国内名列前茅的自主越野品牌,其旗下的BJ40BJ80都是大家所孰知的车型。今天小编要说的是北京越野21款BJ30,这款车的价格非常亲民,仅需10万出头就能让你体验到越野车加上它,让你的iPadPro比电脑更好用乔布斯传记录了乔布斯要求工程师缩短Mac开机时间时将之比喻为救人性命如果Mac卖出500万台,而每天每台机器开机多花费10秒钟,那加起来每年就要浪费大约3亿分钟,而3亿分钟至少相当新增1。5T发动机,这台高颜值的紧凑型SUV最高才8。58万元提起东风风光,很多人首先想到的可能是曾经风靡一时的风光580,但殊不知它旗下还有一款高颜值的紧凑型SUV风光500,虽然并不是一款全新车型,但2022款车型在保留了老款时尚动感的设都挂广汽标,为何还有那么多人到广丰店里买这辆翻版的埃安S?前几天我们推送过一篇关于广汽本田本田绎乐的文章,受到很高的关注。不过很多人都说怎么在一些汽车网站里,广汽本田下面找不到这款车呢?这还要从它真正的出身说起,其实它就是埃安S的一款翻版还是2。98万起,续航最高301km,高配车型还有快充五菱宏光MINIEV可以说是开创了一个经济型微型纯电动车的先河,上市以来表现一直优异。这也让不少企业看到了微型电动车的商机,开始陆续推出微型电动车型,欲从中分一杯羹。不过,今天小编产品力升级,改款几何C上市,续航最高550km近日吉利旗下的新能源品牌几何汽车发布了新一代几何C,在配置方面有了一些改动,小编带大家来了解一下2021款的几何C。2021款几何C的外观和上一代相比没有太大改动,带有明显的跨界S性能最强自主增程混动,赛力斯SF5了解一下说到增程式汽车,大家一定都会想到理想ONE,增程式汽车的优点非常多,结构简单,更加节能,电池寿命长,也不会出现缺电抛锚现象,今天为大家带来的这款赛力斯SF5就是增程式汽车,下面就让男人的机械玩具,V8增压发动机3。9秒破百,少金勿进有些车推出来就不是给所有人来消费的,即便它是一辆大空间高底盘的SUV车型,就比如这辆宝马X6M,4。4TV8双涡轮增压发动机3。9秒的0100kmh加速时间250kmh的最高车速和大空间五七座SUV又出新了!标准配置都超高,起步还不到14万2021款捷途X70PLUS又出新了!就是今年4月上市的捷途X70PLUS诸葛版。诸葛版最大的特点就是,除了保留X70PLUS大气的外观设计五座或七座大空间以及奇瑞最新的1。6T动