Cod sursa(job #1385094)

Utilizator danstefanDamian Dan Stefan danstefan Data 11 martie 2015 18:04:02
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n,i,v[500010],cn;
    ofstream g ("algsort.out");
void hip(int i){
    int fs,fd;
    for(i=1;i<=n/2;i++){
    if(i*2<=n)fs=v[i*2];
    else fs=0;
    if(i*2+1<=n)fd=v[i*2+1];
    else fd=0;
    if(v[i]<fs)swap(v[i],v[i*2]);
    if(v[i]<fd)swap(v[i],v[i*2+1]);}}
int main(){
    freopen("algsort.in","r",stdin);
    scanf("%d",&n);
    cn=n;
    for(i=1;i<=n;i++)
    scanf("%d",&v[i]);
    for(i=1;i<=n/2;i++)
    hip(i);

    while (n) {
        swap(v[1],v[n]);
        n--;
        hip (i);

    }
    for(i=1;i<=cn;i++)
    g<<v[i]<<" ";
    return 0;}