Pagini recente » Cod sursa (job #2390357) | Cod sursa (job #2682474) | Cod sursa (job #863765) | Cod sursa (job #2621574) | Cod sursa (job #2891727)
//#include <iostream>
#include <math.h>
#include <fstream>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int tmp[500001];
void MergeSort(int v[], int st, int dr) {
if(st < dr) {
int m = (st + dr) / 2;
MergeSort(v, st, m);
MergeSort(v, m+1, dr);
//interclasare
int i = st, j = m+1, k= 0;
while(i <= m && j <= dr) {
if(v[i] < v[j]) {
tmp[++k] = v[i++];
}
else {
tmp[++k] = v[j++];
}
}
while(i <=m) {
tmp[++k] = v[i++];
}
while(j <= dr) {
tmp[++k] = v[j++];
}
for(i = st, j = 1; i<=dr;i++, j++) {
v[i] = tmp[j];
}
}
}
int main() {
int n, v[500001];
cin >> n;
for(int i = 1;i<=n;i++) {
cin >> v[i];
}
MergeSort(v, 1, n);
for(int i = 1;i<=n;i++) {
cout << v[i] << " ";
}
}