2 weixin 34219457 weixin_34219457 于 2016.04.06 20:17 提问

堆排序过程中的调整问题

HeapSort中第二个for循环进HeapAdjust(A,1,i-1)的时候总是在头节点进行调整?图片说明

2个回答

szllong123
szllong123   2016.04.06 20:36

全部调整的,一直跳到末尾的

CSDNXIAOD
CSDNXIAOD   2016.04.09 20:31

性能测试过程中的问题
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
八大排序算法-堆排序
基本思想 堆排序是一种树形选择排序,是对直接选择排序的有效改进。 堆的定义如下:具有n个元素的序列(k1,k2,…,kn),当且仅当满足 时称之为堆。由堆的定义可以看出,堆顶元素(即第一个元素)必为最小项(小顶堆)。 若以一维数组存储一个堆,则堆对应一棵完全二叉树,且所有非叶结点的值均不大于(或不小于)其子女的值,根结点(堆顶元素)的值是最小(或最大)的。如: (a)大顶堆序列:
堆与堆排序与topK问题
堆与堆排序与topK问题
堆排序(向下调整建堆后再排序)
#include using namespace std; void AdjustDown(int[] , int , int ); void BuildMaxHeap(int A[], int len) { for (int i = len / 2; i >= 1; i--)//从完全二叉树的最后一个非叶子节点开始调整建立大根堆 { AdjustDown(A, i, len); }
TopK问题探索-最小堆JAVA实现
TopK问题是指从
数据结构示例——堆排序过程
完整算法见[例程],本文用一个例子,演示堆排序的过程。例:对{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}进行堆排序的过程。算法如下:void HeapSort(RecType R[],int n) { int i; RecType temp; //(1)循环建立初始堆 for (i=n/2; i>=1; i--)
堆排序--小根堆的建立与调整
网上关于小根堆(堆排序)的博客不是很多,有些代码还不全,这里找到一个适合初学者的代码分享给大家: 原作者在他的博客里已经写的很详细了,因为VS对代码的要求比较高,我对原作者分配空间和增加空间的函数用了更规范的写法,下面是代码: #include<stdio.h> #include<stdlib.h> typedef int ElemType; struct HeapSq //定义堆的顺序存储类型 {
堆排序的过程及简单实现
堆排序(一个迭代的过程) 一、二叉堆的定义   二叉堆是完全二叉树或者是近似完全二叉树。   二叉堆满足二个特性:   1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。   2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。   当父结点的key总是大于或等于任何一个子节点的key时为最大堆。   当父结点的key总是小于或等于任何一个子节点的key时
堆排序图片详解
堆排序实例 首先,建立初始的堆结构如图: 然后,交换堆顶的元素和最后一个元素,此时最后一个位置作为有序区(有序区显示为黄色),然后进行其他无序区的堆调整,重新得到大顶堆后,交换堆顶和倒数第二个元素的位置…… 堆排序分析   堆排序方法对记录数较少的文件并不值得提倡,但对n较大的文件还是很有效的。因为其运行时
排序——堆排序-大根堆(大顶堆)
1.小根堆 若根节点存在左子女则根节点的值小于左子女的值;若根节点存在右子女则根节点的值小于右子女的值。 2.大根堆 若根节点存在左子女则根节点的值大于左子女的值;若根节点存在右子女则根节点的值大于右子女的值。 3.结论 (1)堆是一棵完全二叉树(如果公有h层,那么1~h-1层均满,在h层连续缺失若干个右叶子)。 (2)小根堆的根节点的值是最小值,大根堆的根节点的值是最大值。 (3)
自底向上实现堆排序
堆排序是变治法的一个实例 以实现大根堆为例 首先,设置一个数组h[N]存储堆,第一个元素h[0] = INF,不作使用,堆元素从1到n; 其次,完全二叉树是指:除最后一层,树的每层是满的,最后一层最右边的元素可以缺少; 堆需要满足两个条件: (1)堆逻辑上看是一颗完全二叉树,这具备了一些性质:如父母结点(非叶子结点)下标一定是从1到n/2('/'为整除) (2)父母结点