排序-堆排序
来源:互联网 发布:万网单域名控制台 编辑:程序博客网 时间:2024/06/07 17:28
输入格式:
输入第一行给出正整数N(≤105),随后一行给出N个(长整型范围内的)整数,其间以空格分隔。
输出格式:
在一行中输出从小到大排序后的结果,数字间以1个空格分隔,行末不得有多余空格。
输入样例:
114 981 10 -17 0 -20 29 50 8 43 -5
输出样例:
-20 -17 -5 0 4 8 10 29 43 50 981
#include <bits/stdc++.h>void HeapAdjust(int a[], int s, int m){ a[0] = a[s]; for(int i = 2 * s; i <= m; i *= 2) { if(i < m && a[i] < a[i + 1]) ++i; if(a[i] <= a[0]) break; else { a[s] = a[i]; s = i; } } a[s] = a[0];}int main(){ int N; int a[100010]; scanf("%d", &N); for(int i = 1; i <= N; ++i) scanf("%d", &a[i]); //初始化最大堆 for(int i = N / 2; i > 0; --i) HeapAdjust(a, i, N); for(int i = N; i > 0; --i) { a[0] = a[1]; a[1] = a[i]; a[i] = a[0]; HeapAdjust(a, 1, i - 1); } printf("%d", a[1]); for(int i = 2; i <= N; ++i) printf(" %d", a[i]);}
阅读全文
0 0
- 堆排序
- 堆排序
- 堆排序
- 堆排序:
- 堆排序
- 堆排序
- 堆排序
- 堆排序
- 堆排序
- 堆排序
- 堆排序
- 堆排序
- 堆排序
- 堆排序
- 堆排序
- 堆排序
- 堆排序
- 堆排序
- ActiveMQ 01 消息中间件概述
- 并查集 HDU小希的迷宫
- Mastering Apache Spark.pdf 英文原版 免费下载
- 【自然语言处理】预测电影影评情感的深度学习词袋模型
- 进程与信号
- 排序-堆排序
- Thymeleaf教程 (十三) 附件:基础对象和web参数访问方式。
- django-6-第三方
- SpringMVC数据校验
- Python语言入门(五)函数与默认参数、可变参数
- Android之retrofit初步使用
- Netty入门案例
- 7. Reverse Integer
- 初级DBA知识