Pagini recente » Cod sursa (job #837572) | Cod sursa (job #631540) | Cod sursa (job #707091) | Cod sursa (job #281368) | Cod sursa (job #747766)
Cod sursa(job #747766)
#include<fstream>
#define DMAX 1000005
using namespace std;
int v[DMAX],n;
void citire()
{
ifstream cin("elmaj.in");
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
}
void interclasare(int a,int b,int m)
{
int aux[DMAX],i=a,j=b+1,k=0;
while(i<=b&&j<=m)
if(v[i]<v[j])
aux[++k]=v[i++];
else
aux[++k]=v[j++];
while(i<=b)
aux[++k]=v[i++];
while(j<=m)
aux[++k]=v[j++];
for(i=a;i<=m;i++)
v[i]=aux[i-a+1];
}
void sortare(int a,int b)
{
if(b>a)
{
int m=(a+b)>>1;
sortare(a,m);
sortare(m+1,b);
interclasare(a,m,b);
}
}
void afisare()
{
ofstream cout("elmaj.out");
for(int i=1;i<=n;i++)
cout<<v[i]<<' ';
}
int main()
{
citire();
sortare(1,n);
afisare();
}