Pagini recente » Cod sursa (job #3175834) | Cod sursa (job #2342886) | Cod sursa (job #707018) | Cod sursa (job #946451) | Cod sursa (job #3261301)
#include <bits/stdc++.h>
using namespace std;
int a[500005], b[500005], n;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
void Intercl(int st, int m, int dr)
{
int i, j, k;
i=st;
j=m+1;
k=st;
while(i<=m && j<=dr)
{
if(a[i]<a[j])
b[k++]=a[i++];
else b[k++]=a[j++];
}
while(i<=m) b[k++]=a[i++];
while(j<=dr) b[k++]=a[j++];
for(i=st;i<=dr;i++) a[i]=b[i];
}
void MergeSort(int st, int dr)
{
if (st < dr)
{
int m = (st + dr) / 2;
MergeSort(st, m);
MergeSort(m + 1, dr);
Intercl(st, m, dr);
}
}
void Citire()
{
fin >> n;
for (int i = 1; i <= n; i++)
fin >> a[i];
}
void Afisare()
{
for (int i = 1; i <= n; i++)
fout << a[i] << " ";
}
int main()
{
Citire();
MergeSort(1, n);
Afisare();
return 0;
}