Cod sursa(job #1320559)

Utilizator YusukeFMI Mares Medar Razvan Yusuke Data 18 ianuarie 2015 02:08:32
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
//Mares Medar Razvan - Grupa 141
//HeapSort
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[500005],n,i,temp,k,j;
void constrheap(int a[],int n){
    for (i=1;i<n;i++){
        temp=a[i];
        k=(i-1)/2;
        j=i;
        while (j>0&&a[k]<temp){
            a[j]=a[k];
            j=k;
            k=(j-1)/2;
        }
        a[j]=temp;
    }
}
void sortezheap(int a[],int n){
    for(i=n-1;i>=1;i--){
        temp = a[i];
        a[i] = a[0];
        a[0] = temp;
        constrheap(a, i);
    }
}
int main(){
    f>>n;
    for (i=0;i<n;i++)
        f>>a[i];
    constrheap(a,n);
    sortezheap(a,n);
    for(i=0;i<n;i++)
        g<<a[i]<<" ";
}