Pagini recente » Cod sursa (job #1938566) | Cod sursa (job #372991) | Cod sursa (job #1805484) | Cod sursa (job #2769049) | Cod sursa (job #3253387)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int NMax = 500000;
int N; int X[NMax + 5];
int Aux[NMax + 5];
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++)
X[k] = Aux[k];
}
int main()
{
fin >> N;
for(int i = 1; i <= N; ++i)
fin >> X[i];
Mergesort(1,N);
for(int i =1 ; i<=N; ++i)
fout << X[i] << " ";
return 0;
}