Pagini recente » Cod sursa (job #926969) | Cod sursa (job #395489) | Cod sursa (job #66192) | Cod sursa (job #1720069) | Cod sursa (job #1039855)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n,i,j,k,*v;
void heapsort()
{
for(i=0;i<n;++i)
for(j=i;j && v[j]>v[j/2];j>>=1)
swap(v[j],v[j/2]);
while(i)
{
j=0;
swap(v[0],v[i-1]);
while(j<(i-1)/2)
{
if(v[2*j]>v[2*j+1])
if(v[j]<v[2*j])
{
swap(v[j],v[2*j]);
j<<=1;
}
else
break;
else
if(v[j]<v[2*j+1])
{
swap(v[j],v[2*j+1]);
j=j*2+1;
}
else
break;
}
i--;
}
}
int main()
{
fin>>n;
v=new int[n];
for(i=0;i<n;++i)
fin>>v[i];
heapsort();
for(i=0;i<n;++i)
fout<<v[i]<<" ";
}