南邮 OJ 1066 堆排序
来源:互联网 发布:淘宝童装模特丫丫 编辑:程序博客网 时间:2024/05/29 04:07
堆排序
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 365 测试通过 : 204
总提交 : 365 测试通过 : 204
比赛描述
给定输入排序元素数目n和相应的n个元素,写出程序,利用内排序算法中堆排序算法进行排序,并输出排序最后结果的相应序列。
输入
共两行,第一行给出排序元素数目n,第二行给出n个元素,1≤n≤100000,每个元素值范围为 [0,100000)
输出
一行,输出排序结果。
样例输入
7
48 36 68 72 12 48 2
样例输出
2 12 36 48 48 68 72
提示
数据结构A实验四
题目来源
CHENZ
#include<iostream>using namespace std;template<typename T>void maxHeapify(T* a,long n,long i){int l=i*2+1,r=l+1;while(r<n){if(a[i]>a[l] && a[i]>a[r])return;if(a[l]>a[r]){swap(a[i],a[l]);i = l;}else{swap(a[i],a[r]);i = r;}l = i*2+1;r = l+1;}if(l<n && a[l]>a[i])swap(a[l],a[i]);return;}template<typename T>void hSort(T* a,long n){long i;for(i=n-1;i>=0;--i)maxHeapify(a,n,i);while(n){swap(a[n-1],a[0]);--n;maxHeapify(a,n,0);}}int main(){long i,n,a[100000];cin>>n;for(i=0;i<n;++i)cin>>a[i];hSort(a,n);cout<<a[0];for(i=1;i<n;++i)cout<<" "<<a[i];cout<<endl;}
0 0
- 南邮 OJ 1066 堆排序
- swust oj 1015 堆排序
- 九度OJ 1202 排序 -- 堆排序
- 九度OJ 1371 最小的K个数 -- 堆排序
- 南邮 OJ 1023 字符串排序
- 南邮 OJ 1024 01排序
- 南邮 OJ 1064 快速排序
- 南邮 OJ 1110 奇数排序
- 南邮 OJ 1181 字符排序
- 南邮 OJ 1736 排序问题
- 数据结构实验之排序四:寻找大富翁 【OJ--3401】【堆排序】
- 堆及堆排序
- 堆/堆排序特点
- 【二叉堆、堆排序】
- 二叉堆 & 堆排序
- 二叉堆 & 堆排序
- 堆与堆排序
- 堆与堆排序
- linux中把用户加到一个新的组中
- Git 常用命令整理
- Android Studio使用技巧系列教程 快捷键
- Runtime
- iOS—Xcode中设置Framework Search Paths的秘密!
- 南邮 OJ 1066 堆排序
- zoj 3551 Bloodsucker 概率DP
- Python框架DJango安装
- c++中vector容器的用法
- poj2823 单调队列
- more detail pxe deploy in ironic
- s:iterator 中的status 使用方法
- Nginx控制域名301跳转出现"此网页包含重定向循环"
- 【GDOI】模拟8.3总结