Pagini recente » Cod sursa (job #2393303) | Cod sursa (job #1164237) | Cod sursa (job #388382) | Cod sursa (job #1551309) | Cod sursa (job #2217692)
#include <iostream>
#include <fstream>
using namespace std;
void wap(int &a,int &b)
{
int aux;
aux = a;
a=b;
b=aux;
}
int main()
{
int h[100],n,i,x,v[100],k=0;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
cin>>n;
cin>>h[1];
for(i=2; i<=n; i++)
{algsort.in
cin>>h[i];
int nc=i;
while(h[nc]<h[nc/2] && nc/2>0) { wap(h[nc],h[nc/2]); nc=nc/2; }
}
while(n)
{
v[++k]=h[1];
h[1]=h[n];
n--;
int nc=1,fisu,ifisu;
while(1)
{
if(h[2*nc]<h[2*nc+1]) fisu=h[2*nc],ifisu=2*nc; else fisu=h[2*nc+1],ifisu=2*nc+1;
if(fisu > h[nc] || ifisu>n ) break;
wap(h[ifisu],h[nc]); nc=ifisu;
}
}
for(i=1;i<=k;i++)
cout<<v[i]<<" ";
return 0;
}