Pagini recente » Cod sursa (job #1687127) | Cod sursa (job #1580561) | Cod sursa (job #1698859) | Cod sursa (job #2822295) | Cod sursa (job #3253389)
#include <fstream>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
const int NMax=500000;
int n; int x[NMax+3];
int Aux[NMax+3];
void MergeSort(int Left, int Right){
if(Left==Right)
return;
int Mid=(Left +Right)/2;
MergeSort(Left, Mid);
MergeSort(Mid+1, Right);
int i=Left, j=Mid+1, k=Left;
while(i<=Mid&&j<=Right){
if(x[i]<x[j])
Aux[k++]=x[i++];
else Aux[k++]=x[j++];
}
while(i<=Mid){
Aux[k++]=x[i++];
}
while(j<=Right){
Aux[k++]=x[j++];
}
for(k=Left; k<=Right; k+=1){
x[k]=Aux[k];
}
}
int main()
{
cin>> n;
for(int i=1; i<=n; ++i){
cin>> x[i];
}
MergeSort(1, n);
for(int j=1; j<=n; ++j)
cout<< x[j]<< ' ';
}