Pagini recente » Cod sursa (job #2064253) | Cod sursa (job #1604898) | Cod sursa (job #2960614) | Cod sursa (job #82390) | Cod sursa (job #1292112)
#include <fstream>
#define MAXN 500005
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int aux[MAXN], i1, i2, i, mid;
void merge_sort(int v[], int left, int right){
if(left == right)
return;
merge_sort(v, left, (left + right) >> 1);
merge_sort(v, ((left + right) >> 1) + 1, right);
mid = (left + right) >> 1;
i1 = left; i2 = mid + 1;
for(i = left; i <= right; i++){
if(i2 > right || v[i1] < v[i2])
aux[i] = v[i1++];
else
aux[i] = v[i2++];
}
for(i = left; i <= right; i++)
v[i] = aux[i];
}
int main(){
int n, v[MAXN], i;
f >> n;
for(i = 1; i <= n; i++)
f >> v[i];
merge_sort(v, 1, n);
for(i = 1; i <= n; i++)
g << v[i] << ' ';
f.close();
g.close();
return 0;
}