题目大意:给定一系列的数,并能够不断往里添加数使这个序列得到更新,问第k大的数是几这里可以用两种方法来做:1.运用优先队列将其由小到大保存,令队列里的数据始终只有k个,那么队首元素就是最小值2.运用堆排列,同样也只是在堆中存放k个元素,将最小值的位置放在堆顶,当超过k个的元素加入时,如果加入的数大于...
分类:
其他好文 时间:
2014-07-30 20:10:14
阅读次数:
216
堆排序1.堆堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2]即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。堆分为大顶堆和小顶堆,满足Key[..
分类:
其他好文 时间:
2014-07-30 15:05:24
阅读次数:
172
堆排序 堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。1.堆堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆...
分类:
其他好文 时间:
2014-07-29 21:35:02
阅读次数:
434
堆排序是一种选择排序,其时间复杂度为O(nlogn)。堆的定义 n个元素的序列{k1,k2,…,kn}当且仅当满足下列关系之一时,称之为堆。情形1:ki = k2i 且ki >= k2i+1 (最大化堆或大顶堆)其中i=1,2,…,n/2向下取整;若将和此序列对应的一维数组(即以一维数组作此序列的存...
分类:
其他好文 时间:
2014-07-28 15:08:53
阅读次数:
248
Heap sort is common in written exams.First of all, what is heap? Heap is a kind of data struct that can be seen as a complete binary tree. The objectt...
分类:
其他好文 时间:
2014-07-26 00:13:06
阅读次数:
343
堆-顾名思义,上面小,下面大,或者上面大,下面小。在堆排序过程中,首先应该建堆。如何将数组中的元素建立成一个规范的堆行结构。二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最...
分类:
其他好文 时间:
2014-07-26 00:07:16
阅读次数:
381
堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先讲解下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都...
分类:
其他好文 时间:
2014-07-25 14:08:42
阅读次数:
228
二叉堆:
二叉堆是完全二叉树或者是近似完全二叉树。
二叉堆满足二个特性:
1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。
2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。
当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小堆
堆排序:
由二叉堆的定义可知,堆顶元素(即...
分类:
其他好文 时间:
2014-07-23 22:34:19
阅读次数:
193
上节分析了O(n^2)的算法,这节就分析O(nlgn)的算法-归并,快速和堆排序。一:综述 O(nlgn) 的算法可以分为两大类,两者所用的技术差别较大。归并和快速排序采用的是分治策略,这两者相当于一个对称的过程,一个是自顶向上合并子问题,另一个则自上向下分解子问题。而堆排序利用堆这一数据结构元素间...
分类:
其他好文 时间:
2014-07-22 22:36:14
阅读次数:
282