Advertisement

选择式排序(堆式大根堆升序结构——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)

还没有任何评论哟~