Pagini recente » Cod sursa (job #971680) | Cod sursa (job #171756) | Cod sursa (job #2649549) | Cod sursa (job #2710192) | Cod sursa (job #747729)
Cod sursa(job #747729)
#include<fstream>
#define DMAX 500000
using namespace std;
int v[DMAX],n;
void citire()
{
ifstream cin("algsort.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("algsort.out");
for(int i=1;i<=n;i++)
cout<<v[i]<<' ';
}
int main()
{
citire();
sortare(1,n);
afisare();
}