Pagini recente » Cod sursa (job #3203943) | Cod sursa (job #2195844) | Cod sursa (job #2832787) | Cod sursa (job #1589717) | Cod sursa (job #1315656)
#include<iostream>
#include<fstream>
using namespace std;
int a[500000],n,i;
void heapsort(int m)
{
if(m==0) return;
int t,n=m,p=m/2,i,c;
while(1)
{if(p>0) t=a[--p];
else
{n--;
if(n==0) return;
t=a[n];
a[n]=a[0];}
i=p;
c=i*2+1;
while(c<n)
{if(c+1<n&&a[c+1]>a[c]) c++;
if(a[c]>t)
{a[i]=a[c];
i=c;
c=i * 2 + 1;}
else break;}
a[i]=t;}
}
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(i=0;i<n;i++) f>>a[i];
heapsort(n);
for(i=0;i<n;i++) g<<a[i]<<" ";
f.close();
g.close();
return 0;
}