Pagini recente » Cod sursa (job #1759480) | Cod sursa (job #1157451) | Cod sursa (job #1785670) | Cod sursa (job #2059276) | Cod sursa (job #2716992)
//#include <iostream>
#include <fstream>
using namespace std;
ifstream cin ("algsort.in");
ofstream cout ("algsort.out");
int n,a[1005];
void interclas (int p, int mij, int q)
{
int i,j,k,b[1005];
i=p;
j=mij+1;
k=0;
while(i<=mij && j<=q)
{
if(a[i]<a[j])
{
b[++k]=a[i++];
}
else b[++k]=a[j++];
}
while(i<=mij)
b[++k]=a[i++];
while(j<=q)
b[++k]=a[j++];
int t=1;
for(i=p;i<=q;i++)
{
a[i]=b[t++];
}
}
void divide(int p, int q)
{
int mij=(p+q)/2;
if(p<q)
{
divide(p,mij);
divide(mij+1,q);
interclas(p,mij,q);
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
divide(1,n);
for(int i=1;i<=n;i++)
cout<<a[i]<<' ';
return 0;
}