Pagini recente » Cod sursa (job #2172223) | Cod sursa (job #963737) | Cod sursa (job #1604286) | Cod sursa (job #680986) | Cod sursa (job #2643955)
#include <iostream>
#include <fstream>
using namespace std;
#define NMAX 500005
int A[NMAX], B[NMAX];
void MergeSort(int st, int dr) {
if (st == dr)
return;
int mij = (st + dr) / 2;
MergeSort(st, mij);
MergeSort(mij + 1, dr);
int i = st;
int j = mij + 1;
int k = st;
while(i <= mij || j <= dr)
{
if( j > dr || (i <= mij && A[i] < A[j]))
{
B[k++] = A[i++];
}
else
{
B[k++] = A[j++];
}
}
for (int l = st; l <= dr; l++)
{
A[l] = B[l];
}
}
int main()
{
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n;
fin >> n;
for (int i = 0; i < n; ++i)
fin >> A[i];
MergeSort(0, n - 1);
for (int i = 0; i < n;++i)
fout << A[i] << ' ';
fout.close();
return 0;
}