Pagini recente » Cod sursa (job #2431259) | Cod sursa (job #637683) | Cod sursa (job #3000057) | Cod sursa (job #480896) | Cod sursa (job #771499)
Cod sursa(job #771499)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int v[500001], i, n, c, p, aux;
int main(){
f>>n;
for(i=1; i<=n; i++)
f>>v[i];
f.close();
for(i=2; i<=n; i++)
{
c=i;
p=i/2;
while(v[c]>v[p] && c!=1)
{
aux=v[c];
v[c]=v[p];
v[p]=aux;
c=p;
p=p/2;
}
}
for(i=n; i>1; i--)
{
aux=v[1];
v[1]=v[i];
v[i]=aux;
p=1;
c=p*2;
while(c<i)
{
if(c+1<i && v[c]<v[c+1])
c++;
if(v[c]>v[p])
{
aux=v[c];
v[c]=v[p];
v[p]=aux;
p=c;
c=p*2;
}
else break;
}
}
for(i=1; i<=n; i++)
g<<v[i]<<' ';
g.close();
return 0;
}