20162328蔡文琛 week09 大二
20162328蔡文琛 大二week09
教材学习内容总结
堆是一棵完全二叉树,其中每个元素大于等于其所有子节点的值。
向堆中添加一个元素的方法是,首先将这个元素添加为叶节点然后将其向上移动到合适的位置。
从堆中删除最大元素的方法是,利用最后的叶节点来取代根,然后将其向下移动到合适的位置。
堆是一棵完全二叉树,其中每个元素大于等于其所有子节点的值。 向堆中添加一个元素的方法是,首先将这个元素添加为叶节点然后将其向上移动到合适的位置。 从堆中删除最大元素的方法是,利用最后的叶节点来取代根,然后将其向下移动到合适的位置。 堆排序利用堆的基本特性对异族元素进行排序。 优先队列不是FIFO队列。它根据优先级排列元素,而不是根据它们进入队列的次序来排列 二叉查找树和堆都是越输了元素之间关系的二叉树。二叉查找树中的结点大于他的左节点,并小于等于它的右子节点,而(最大)堆中的节点大于等于他的两个子节点。
最小堆中数的最小值在树的根,而最大堆中最大值在根。所以,他们的策略和实现机制都是类似的。
将元素作为新的叶节点添加到堆中,然后让它在树中向上移动到与其他元素的大小先对合适的位置。
在(最大)堆中,用树的最后叶节点体换根,然后将该元素向下移动到与其他元素大小合适的位置,从而删除最大元素。
堆排序是一种排序算法,他先将数据添加到堆中,然后按排序的次序删除他们。
优先队列是一个队列,其元素按指定的优先级来排序,优先级相同时,按出现的先后次序排序。

教材学习中的问题和解决过程
问题:还是不太理解优先队列的概念。
解决:
优先队列是一种用来维护由一组元素构成的集合S的数据结构,其中的每一个元素都有一个相关的值,称为关键字。优先队列也分为两种:最大优先队列和最小优先队列。
一个最大优先队列支持以下操作:
•INSERT(S,x):把元素x插入集合S中;
•MAXIMUM(S):返回S中具有最大关键字的元素;
•EXTRACT_MAX(S):去掉并且返回S中的具有最大关键字的元素;
•INCREASE_KEY(S,x,k):将元素x的关键字值增加到k。
相应地,最小优先队列支持的操作包括INSERT、MINIMUM、EXTRAT_MIN和DECRESE_KEY。

[代码托管] (https://gitee.com/pdds2017/cwc20162328_JavaFoundations2nd/tree/master/src/FourArithmeticOperations)
20162328蔡文琛 week09 大二的更多相关文章
- 20162328蔡文琛 week05 大二
20162328 2017-2018-1 <程序设计与数据结构>第5周学习总结 教材学习内容总结 集合是收集元素并组织其他对象的对象. 集合中的元素一般由加入集合的次序或元素之间的某些固有 ...
- 20162328蔡文琛 week11 大二
20162328 2017-2018-1 <程序设计与数据结构>第十一周学习总结 教材学习内容总结 在无向图中,表示边的顶点对是无序的. 如果图中的两个顶点之间有边链接,则称它们是领接的. ...
- 20162328蔡文琛 week10 大二
20162328 2017-2018-1 <程序设计与数据结构>第十周学习总结 教材学习内容总结 理解图与有向图.无向图 理解带权图 会应用带权图 理解图的广度优先遍历和深度优先遍历 掌握 ...
- 20162328蔡文琛 week06 大二
20162328 2017-2018-1 <程序设计与数据结构>第6周学习总结 教材学习内容总结 队列元素按FIFO的方式处理----最先进入的元素最先离开. 队列是保存重复编码k值得一种 ...
- 20162328蔡文琛week09
学号 2016-2017-2 <程序设计与数据结构>第X周学习总结 教材学习内容总结 数据库是为了其他程序提供数据的应用软件. 关系书就哭通过唯一的标识符在不同表的记录见建立了关系. JD ...
- 20162328蔡文琛 大二week07
20162328 2017-2018-1 <程序设计与数据结构>第7周学习总结 教材学习内容总结 树是非线性结构,其元素组织为一个层次结构. 树的度表示树种任意节点的最大子节点数. 有m个 ...
- 20162328蔡文琛 大二 十二周课上测试 hash
- 20162328蔡文琛 大二week01
教材学习内容总结 算法+程序机构=程序 渐进复杂度称为算法的阶. 算法分析是计算机科学的基础课题. 增长函数显示了与问题大小相关的时间或空间的利用率. 算法的阶由算法增长函数的主项决定. 算法的阶给出 ...
- 20162328蔡文琛week04
学号 20162328 <程序设计与数据结构>第4周学习总结 教材学习内容总结 本周学习了第四章和第七章,第四章中的内容已经有了初步定的掌握,布尔表达式的运用,是条件和循环语句的基础及数组 ...
随机推荐
- scp 指定端口(转)
1.注意-P 大写 2.实例 从服务器下载 scp -P 26399 root@104.222.133.88:/home/wwwroot/default/phpmyadmin/save/wordpre ...
- FFMpeg笔记(一) 使用FFmpeg将任意格式图片转换成任意格式图片
void SrcToDest(char* pSrc, char* pDest,unsigned int nSrcWidth, unsigned int nSrcHeight, AVPixelForma ...
- 谈谈我的js学习过程(二)——“Hello World!”
在<谈谈我的js学习过程(一)>中,我简单聊了一下我认为的javascript的学习方法,接下来我们可以尝试来写一个最简单的js代码. "Hello World!"对于 ...
- 安装framework 4.6.2的时报错 “无法建立到信任根颁发机构的证书链”
解决方案: 1.下载证书:MicrosoftRootCertificateAuthority2011.cer 2.开始→运行→MMC 3.文件→添加删除管理单元 (Ctrl+M) 4.证书→计算机账户 ...
- oracle 导入报错:field in data file exceeds maximum length
今天用sqlldr导入数据时候报错: " Record 1: Rejected - Error on table ks_test, column khname.Field in data f ...
- JS form跳转到新标签页并用post传参
通过js实现跳转到一个新的标签页,并且传递参数.(使用post传参方式) 1 超链接<a>标签 (get传参) <a href="http://www.cnblogs. ...
- django中间件-12
目录 自定义中间件 函数定义 类定义 中间件的执行顺序 在django中,中间件其实就是一个类,他是一个可以介入django的 request 和 response 的钩子框架,在请求响应不同的阶段, ...
- 【转】Netty 拆包粘包和服务启动流程分析
原文:https://www.cnblogs.com/itdragon/archive/2018/01/29/8365694.html Netty 拆包粘包和服务启动流程分析 通过本章学习,笔者希望你 ...
- react fake double , bind click and dblclick on the same element
smartClick:function(id,name,waiter,e){ var desk = $$(e.currentTarget).data('raw'); if(this.lastClick ...
- HDU3045 Picnic Cows
题面 HDU vjudge 题解 将权值排序,则分组一定是连续的 设$f[i]$表示前$i$头牛的最小代价,则($a[i]$为$i$的权值): $$ f[i] = f[j - 1] + sum[i] ...