Pagini recente » Cod sursa (job #1636110) | Cod sursa (job #122971) | Cod sursa (job #111540) | Cod sursa (job #1634489) | Cod sursa (job #847981)
Cod sursa(job #847981)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int c[500001];
void inter(int a[500001], int s, int m, int d)
{
int i,j,k;
i=s; j=m+1;k=1;
while(i<=m && j<=d)
if(a[i]<a[j]) c[k++]=a[i++];
else c[k++]=a[j++];
while(i<=m) c[k++]=a[i++];
while(j<=d) c[k++]=a[j++];
k=1;
for(i=s;i<=d;i++) a[i]=c[k++];
}
void msort(int a[500001], int s, int d)
{
int m;
if(s<d)
{
m=(s+d)/2;
msort(a,s,m);
msort(a,m+1,d);
inter(a,s,m,d);
}
}
void citire(int a[500001], int &n)
{
int i;
fin>>n;
for(i=1;i<=n;i++) fin>>a[i];
}
void afis(int a[500001], int n)
{
int i;
for(i=1;i<=n;i++) fout<<a[i]<<" ";
}
int main()
{
int a[500001], n;
citire(a,n);
msort(a,1,n);
afis(a,n);
return 0;
}