Pagini recente » Cod sursa (job #1481827) | Cod sursa (job #1550291) | Cod sursa (job #2653677) | Cod sursa (job #101398) | Cod sursa (job #976013)
Cod sursa(job #976013)
#include <iostream>
#include <fstream>
using namespace std;
unsigned int v[500001],ax;
unsigned int i,p,n;
int main(void)
{
FILE * f;
f=fopen("algsort.in","r");
ofstream g("algsort.out");
fscanf(f,"%d",&n);
v[0]=0;
for (i=1;i<=n;i++)
{
fscanf(f,"%ud",&ax);
v[i]=ax;
p=i;
while (v[p]<v[p/2])
{
ax=v[p];
v[p]=v[p/2];
v[p/2]=ax;
p=p/2;
}
}
while (n>1)
{
g<<v[1]<<' ';
v[1]=v[n];
n--;
p=1;
while (((v[p*2]<v[p])&&(p*2<=n))||((v[p*2+1]<v[p])&&(p*2+1<=n)))
{
if ((v[p*2]<=v[p*2+1])&&(p*2<=n))
{
ax=v[p];
v[p]=v[p*2];
v[p*2]=ax;
p=p*2;
}
else
{
ax=v[p];
v[p]=v[p*2+1];
v[p*2+1]=ax;
p=p*2+1;
}
}
}
g<<v[1];
g.close();
return 0;
}