原题链接
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;const int MAX &#61; 10010, INF &#61; 1<<30;void heapAdjust(int A[], int root, int len)
{int left &#61; root*2, right &#61; left &#43;1;int largest &#61; root;if(left <&#61; len && A[left] > A[largest]) largest &#61; left;if(right <&#61; len && A[right] > A[largest]) largest &#61; right;if(largest !&#61; root){swap(A[largest], A[root]);heapAdjust(A, largest, len);}
}void heapSort(int A[], int len)
{for(int i&#61;len/2; i>0; i--) heapAdjust(A, i, len);for(int i&#61;len; i>0; i--){swap(A[1], A[i]);heapAdjust(A, 1, i-1);}
}int A[MAX] &#61; {0};int main()
{int N;scanf("%d", &N);for(int i&#61;1; i<&#61;N; i&#43;&#43;) scanf("%d", &A[i]);heapSort(A, N);for(int i&#61;1; i<&#61;N; i&#43;&#43;) printf("%d\n", A[i]);return 0;
}
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;const int MAX &#61; 10010, INF &#61; 1<<30;
priority_queue<int, vector<int>, greater<int> > Q;int main()
{int N, X;scanf("%d", &N);for(int i&#61;0; i<N; i&#43;&#43;){scanf("%d", &X);Q.push(X);}while(!Q.empty()){printf("%d\n", Q.top());Q.pop();}return 0;
}