#include <iostream>
#include <algorithm>
using namespace std;
const int N = ;
int n, m;
int h[N], size;
void down(int u) {
int t = u; //u这个点的做儿子是u*2,右儿子是u*2+1 完全二叉树
if (u * <= size && h[u * ] < h[t]) t = u * ; //如果左儿子存在,而左儿子比u小
if (u * + <= size && h[u * + ] < h[t]) t = u * + ;//右
if (u != t) {//判断是不是父亲,如果不是,那么交换
swap(h[u], h[t]);
down(t);//递归
}
}
int main() {
scanf("%d%d", &n, &m);
for (int i = ; i <= n; i ++ ) scanf("%d", &h[i]);
size = n;
for (int i = n / ; i; i -- ) down(i);//优化
while (m -- ) {
printf("%d ", h[]);//输出最小
h[] = h[size -- ];//末端的数字覆盖最小数字的位置
down();//再down
}
puts("");
return ;
}

最新文章

  1. C#温故知新:《C#图解教程》读书笔记系列
  2. Android中仿淘宝首页顶部滚动自定义HorizontalScrollView定时水平自动切换图片
  3. Java 日期格式化工具类
  4. 信息安全系统设计基础实验一:Linux开发环境的配置和使用
  5. Windows2003操作系统SQL Server 2008安装图解(详细)
  6. HBase使用场景和成功案例
  7. QStandardItemModel角色控制及QTreeView加入不同的右键菜单
  8. MySQL 列子查询及 IN、ANY、SOME 和 ALL 操作符的使用
  9. Android Studio 中快速提取方法
  10. 用python写爬虫
  11. 如何实现在Windows上运行Linux程序,附示例代码
  12. [0] C# 扩展方法(Extension Method)
  13. windows Apache服务器配置
  14. python 将os.getcwd()获取路径中的\替换成\\
  15. C# 字符串按 ASCII码 排序,注意其中的小坑
  16. Django学习手册 - 连接mysql数据库
  17. gitlab搭建与配置说明
  18. VS2013+Win10+opencv3.0配置(包括opencv2.4.10版本)
  19. style-loader、css-loader、mini-css-extract-plugin 区别
  20. 使用Java客户端对Redis进行操作

热门文章

  1. KafkaUtils.createDirectStream报错Cannot resolve symbol createDirectStream
  2. 4.Docker 操作容器
  3. 1.什么是 Docker
  4. centos7下top free vmstat 命令详情
  5. 腾讯云COS对象存储
  6. 基本程序单元Activity
  7. ReLU(inplace=True),这里的inplace=true的意思
  8. 题解【AcWing271】杨老师的照相排列
  9. 使用Python发送、订阅消息
  10. 【HTML】三种方法使HTML单页面输入密码才能访问