答案在这

黑崎一户  •  3天前


include <bits/stdc++.h> using namespace std;

void swap(int &a, int &b) {

int temp = a; a = b; b = temp; }

void HeadAdjust(int A[], int k, int len) {

A[0] = A[k]; for (int i = 2 k; i <= len; i = 2) {

if (i < len && A[i] < A[i + 1])
	i++;
if (A[0] >= A[i])
	break;
else {
	A[k] = A[i];
	k = i;
}

} A[k] = A[0]; }

void BuildMaxHeap(int A[], int len) {

for (int i = len / 2; i > 0; i--)

HeadAdjust(A, i, len);

}

void HeapSort(int A[], int len) {

BuildMaxHeap(A, len); for (int i = len; i > 1; i--) {

swap(A[i], A[1]);
HeadAdjust(A, 1, i - 1);

} }

int main() {

int n, A[1001], i, len; while (cin >> n) {

for (i = 1; i <= n; i++)
	cin >> A[i];
HeapSort(A, n);
for (int i = 1; i <= n; i++)
	cout << A[i] << " ";

} return 0; }


评论:

请先登录,才能进行评论