Pagini recente » Cod sursa (job #1419826) | Istoria paginii runda/usu5/clasament | Cod sursa (job #1920839) | Cod sursa (job #1923643) | Cod sursa (job #1691474)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n, a[500005], b[500005];
void Read(){
fin >> n;
for(int i = 1 ; i <= n ; ++ i)
fin >> a[i];
}
void mergeSort(int l, int r){
if(l == r)
return ;
int m = (l+r)/2;
mergeSort(l,m);
mergeSort(m+1,r);
for(int i = l, j = m+1, k = l; i <= m || j <= r; ){
if (j > r || (i <= m && a[i] < a[j])){
b[k++] = a[i++];
}
else
b[k++] = a[j++];
}
for(int i = l; i <= r; ++ i)
a[i] = b[i];
}
int main()
{
Read();
mergeSort(1,n);
for(int i = 1 ; i <= n ;++ i)
fout << a[i] << " ";
}