大根堆的创建过程

摘要:
这只是第一次调整(初始顺序)。第一次调整必须从底部到顶部逐一进行。稍后(在第一次交换之后),它从上到下进行(因为除了第一个元素是堆的顶部元素之外,其他所有元素都是调整后的堆)。首先,绘制数据的二叉树:40 30 92 16 20 47 2556 55 35从最后一个数据的父级(20)开始,父级(30)和35交换最大的数据;下一个父母(16),父母92都不移动;

初始堆就是大根堆,只是是第一次(初始序列)调整,第一次必须是自底向上逐个调整,以后(第一次交换后)是自上向下调整(因为除了第一个即堆顶元素,其他都是已经调整好的堆)。过程:
先把数据画出一颗二叉树:
                     40
           30                92
    16         20     47       25
56   55  35
从最后一个数据的双亲(20)开始,数据最大的成为双亲
20和35交换;下一个双亲(16),16和56交换;
双亲92不动;结果如下
                    40
          30                   92
    56          35     47        25
16   55   20
双亲30,相对麻烦些:首先是30和56交换,然后再交换30和55,结果:
                    40
          56                   92
    55         35      47        25
16   30   20
最后是双亲40(根);首先40和92交换,然后40和47交换,结果就是调整好的大顶堆:
                     92
         56                     47
    55          35     40           25
16    30  20
即:{92,56,47,55,35,40,25,16,30,20} 

免责声明:文章转载自《大根堆的创建过程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇小程序渲染问题:ios显示安卓不显示JavaScript中DOM操作之获取元素占位下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Extjs4——表格控件

1.一个表格的简单形式: columns定义表格的结构,包括首部显示文本(header),列对应的记录集字段(dataIndex),列是否排序(sortable),列的渲染函数(renderer),宽度(width),格式化信息(format) data定义表格要显示的数据(原始数据) store为数据存储对象,它负责将各种原始数据转换成Ext.data....

Java基础知识强化之IO流笔记34:OutputStreamWriter(Writer字符流的子类)5种write数据方式

1. OutputStreamWriter (转换流) OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。 同时OutputStreamWriter 也是 字符流Writer(抽象类)一个具体实现子类。 所以我们这个OutputStreamWriter (转换流)也是字符流。 2. ...

前端动态表单的处理方法

背景: 类似于如下的表单的形式,如果我们提前知道了表单的key,那么我们就可以通过正常的处理表单形式,完成相关数据的获取。 但是,如果我们事先不知道表单的属性key值及对应的输入框还是select框, 那我们就得选择其他方式处理。  步骤一:首先,我们约定,后台返回的格式如下: 其中,code字段的具体值为表单的key,type为到底是输入框还是选择框,...

8086CPU的结构与功能

CPU结构与功能 不管什么型号的CPU,其内部均有这四大部件 ALU:算术逻辑单元 工作寄存器:分为数据寄存器和地址寄存器 工作寄存器的目的是为了提高运算速度,希望参与运算的数据不从外部存储器去取数据,而是在CPU内部取,所以要有能暂存少量数据的寄存器。 数据寄存器是专门存放数据的,地址寄存器是专门存放地址,进行间接寻址方式,但当地址寄存器不提供地址时...

COGNOS主要产品比较

COGNOS主要产品比较 产品功能-模型设计 产品 模型设计组件 描述 Cognos 8 BI Framework 能定义视图间表及数据项的关系,构建ROLAP多维数据模型,操作方法复杂,只能进行简单度量运算,不能创建衍生指标,需要在报表层设计。 Transformer 能构建MOLAP多维数据模型,操作复杂,能创建衍生指标,能进行度量的聚合运...

Java 泛型(一)作用和使用

泛型的使用 : https://www.cnblogs.com/jpfss/p/9928747.html   在没有使用泛型的情况下,如果要实现参数“任意化”,通常会定义成Object类型来接受,然后强制类型转换使用;   而强制类型转换有明显的缺点,就是必须要知道实际参数的具体类型的情况才可以进行转换,同时在强制转换的过程中,编译器不会报错提示的,只有在...