Cod sursa(job #1199806)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 20 iunie 2014 17:45:22
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <cstdio>
#include <algorithm>
using namespace std;
FILE *f=fopen("algsort.in","r");
FILE *g=fopen("algsort.out","w");
unsigned int n,v[500001];

void coboara(int nod)
{int fiu;
if (nod*2<=n)  fiu=nod*2;
                else return;
if (nod*2+1<=n&&v[fiu+1]<v[fiu]) fiu=fiu+1;

swap(v[nod],v[fiu]);
coboara(fiu);
}
void urca(int nod)
{if (nod==1)  return;
if (v[nod]<v[nod/2])  {swap(v[nod],v[nod/2]);
                                  urca(nod/2);
                                 }
}


int main()
{int i;
fscanf(f,"%d",&n);
for (i=1;i<=n;i++) {fscanf(f,"%d",&v[i]);
                               urca(i);
                               }
for (i=1;i<=n;i++) {fprintf(g,"%d ",v[1]);
                               v[1]=1<<31;
                               coboara(1);
                              }

return 0;
}