14、编程珠玑笔记十四堆
来源:互联网 发布:巨炮舰队扫矿软件 编辑:程序博客网 时间:2024/05/29 07:44
14、编程珠玑笔记十四堆
本篇名言:“让珊瑚远离惊涛骇浪的侵蚀吗?那无疑是将它们的美丽葬送.”
欢迎转载,转载请标明出处: http://blog.csdn.net/notbaron/article/details/48420371
使用堆主要用于解决两个问题:排序和优先级队列。
堆是用来表示元素集合的一种数据结构。实际上对中的元素可以是任何有序类型。
作者介绍了二叉树,然后介绍了往二叉树进行插入数值破换二叉树特性后的进行调整的两个函数。分别叫做siftup和siftdown。作则其的名字很高记,因为根的数据是最小的,如果小数放在节点上,就必须使用siftup 将该数浮上来,同理大树必须是在叶子节点上,如果再根上,那就需要调用siftdown来沉下来。
1. 优先级队列
数据结构从两方面看,从外部来看说明它做什么,从内部看来说明它可以做什么。
优先级队列操作一个初始化为空的元素集合,往集合中插入一个新元素,也可删除集合中最小的元素。可以通过数组、链表之类的顺序结构来实现优先级队列。
对比算法运行时间如下:
图1
堆使用需要额外的内存。
2. 一种排序
该排序方法中,仅适用了一个数组。第一阶段构建堆,然后用对来建立有序序列,虽然堆排序保证了最坏情况下的0(nlogn)性能,但是我们在实际使用中还是发现快速排序更好用的。具体细节不在此描述。
0 0
- 14、编程珠玑笔记十四堆
- 堆排序(《编程珠玑》第14章)
- 堆排序(《编程珠玑》第14章)
- 编程珠玑(2)第十四章学习笔记之“堆”
- 《编程珠玑》笔记
- 《编程珠玑》笔记
- 编程珠玑笔记
- 编程珠玑学习笔记
- 《编程珠玑》第一章笔记
- 读《编程珠玑》笔记
- 编程珠玑笔记--排序
- 编程珠玑笔记~~开篇
- 编程珠玑 笔记
- 编程珠玑笔记第一章
- 《编程珠玑》第一章笔记
- 编程珠玑学习笔记
- 《编程珠玑》笔记一
- 《编程珠玑》看书笔记
- leetcode--Remove Duplicates from Sorted Array II
- 在线考试系统——测试计划 详细测试报告——testlink
- [bzoj1406]密码箱 解题报告
- 2015长春网络赛(hdu 5442)
- 数据结构之---C语言实现括号匹配(栈实现)
- 14、编程珠玑笔记十四堆
- hdu 5441 Travel
- 如何用FileReader,BufferedReader,FileInputStream读取文档
- 15、编程珠玑笔记十五字符串
- 飘雪
- mantis与testlink实验流程
- Java 容器类深入整理笔记
- php 加密解密
- 2015.09.13