选择式排序(堆式大根堆升序结构——C++版本实现)
发布时间
阅读量:
阅读量
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<limits>
#include<algorithm>
#include<math.h>
#pragma warning(disable:4996)
using namespace std;
//建堆:
//编号<=n/2的所有节点依次“下坠”调整(自底向上处理各分支节点)
//调整规则:小元素逐层“下坠”(与关键字更大的孩子交换)
//排序:
//将堆顶元素加入有序子序列(堆顶元素与堆底元素交换)
//堆底元素换到堆顶后,需要进行“下坠”调整,恢复“大根堆”的特性
//上述过程重复n-1趟
//堆排序(大根堆)升序
//将以k为根的子树调整为大根堆
void HeadAdjust(int A[], int k, int len)
{
A[0] = A[k];//A[0]暂存子树的根节点
for (int i = 2 * k; i <=
全部评论 (0)
还没有任何评论哟~
