#include using namespace std; void insertion(int a[], int n) { for(int i=1; iele && j>=0) { a[j+1]=a[j]; --j; } a[j+1]= ele; } } void selection(int a[], int n) { for(int i=0; i=right) { return; } int mid= (left+right)/2; mergesort(a, left, mid); mergesort(a, mid+1, right); merge(a, left, mid, right); } int partition(int a[], int low, int high) { int pivot= a[high]; int i= low-1; for(int x= low; x=high) return; int pi= partition(a, low, high); quicksort(a, low, pi-1); quicksort(a, pi+1, high); } void heapify(int a[], int n, int i) { int largest=i; int l= 2*i+1; int r= 2*i+2; if(l>a[largest]) { largest=l; } if(r>a[largest]) { largest=r; } if(largest != i) { swap(a[largest], a[i]); heapify(a, n, largest); } } void heapsort(int a[], int n) { for(int i=n/2-1; i>=0; i--) { heapify(a, n, i); } for(int i= n-1; i>0; i--) { swap(a[0], a[i]); heapify(a, i, 0); } } int main() { int n; cin>>n; int a[n]; for(int i=0; i>a[i]; } heapsort(a, n); for(int x=0; x