搜索
热搜: NOIP OIer 神牛
查看: 342|回复: 1

1806

[复制链接]

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-4-9 08:54:30 | 显示全部楼层 |阅读模式
#include<iostream>
using  namespace std;
int arr[1000000];
void maxhead(int arr[], int size, int i) {
    int l =  i * 2;
    int r = i * 2 + 1;
    int  x = i;
    if (l <= size && arr[l] > arr[x]) {
        x = l;
    }
    if (r <= size && arr[r] > arr[x]) {
        x = r;
    }
    if (x != i) {
        swap(arr[x], arr);
        maxhead(arr, size, x);
    }
}
void  buildhead(int arr[], int size) {
    for (int i = size / 2; i >= 1; i--) {
        maxhead(arr, size, i);
    }
}
void sorthead  (int arr[], int size) {
    for (int i = size; i >= 2; i--) {
        swap(arr[1], arr);
        maxhead(arr, i - 1, 1);
    }
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> arr;
    }
    buildhead(arr, n);
    sorthead(arr, n);
    for (int i =  1; i <= n; i++ ) {
        cout << arr << " ";
    }
    return 0;
}



回复

使用道具 举报

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2023-4-9 09:03:56 | 显示全部楼层
晚了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

津ICP备19006949号-1 | 津公网安备12010102000465号

快速回复 返回顶部 返回列表