关注
//堆排序
#include <iostream>
using namespace std;
int arr[100010];
int n,sz;
void down(int u) {
int t = u;
if (u * 2 <= sz && arr[u * 2] < arr[t]) t = u * 2;
if (u * 2 + 1 <= sz && arr[u * 2 + 1] < arr[t]) t = u * 2 + 1;
if (u != t) {
swap(arr[u], arr[t]);
down(t);
}
}
int main() {
printf("你想输入多少个数字:");
scanf("%d", &n);
sz = n;
for (int i = 1; i <= n; i++)
scanf("%d", &arr[i]);
for (int i = n / 2; i; i--)
down(i);
while (sz) {
printf("%d ", arr[1]);
arr[1] = arr[sz--];
down(1);
}
return 0;
}
1
相关推荐
11-17 14:23
海南热带海洋学院 Java 点赞 评论 收藏
分享
11-19 12:10
湖南财政经济学院 Java 点赞 评论 收藏
分享
12-05 00:02
深圳大学 Java 点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
527935次浏览 5382人参与
# 我的求职思考 #
4292342次浏览 57848人参与
# 百融云创开奖 #
36442次浏览 497人参与
# 运营每日一题 #
20965次浏览 362人参与
# 牛客激励计划 #
31099次浏览 784人参与
# 数字马力求职进展汇总 #
124245次浏览 1101人参与
# 我的论文进展 #
10399次浏览 140人参与
# 正在实习的你,几点下班 #
57927次浏览 431人参与
# 晒一晒我的offer #
10175795次浏览 107443人参与
# 职场情商大赛 #
17728次浏览 198人参与
# 秋招结束之后的日子 #
8180次浏览 81人参与
# 简历被挂麻了,求建议 #
2593976次浏览 33945人参与
# 同事找你打听工资怎么办 #
7126次浏览 66人参与
# 我的成功项目解析 #
226647次浏览 5600人参与
# 你上一次加班是什么时候? #
24024次浏览 196人参与
# 面试时最害怕被问到的问题 #
105303次浏览 1832人参与
# 运营人的第一份offer应该如何选 #
89862次浏览 900人参与
# 字节跳动工作体验 #
232162次浏览 3174人参与
# 与leader意见不合怎么办 #
2838次浏览 31人参与
# 机械人选offer,最看重什么? #
60456次浏览 403人参与
# 你投了多少份简历了? #
73660次浏览 868人参与