Pagini recente » Cod sursa (job #3288373) | Cod sursa (job #2177304) | Cod sursa (job #2177317) | Cod sursa (job #2832677) | Cod sursa (job #3285062)
#include <iostream>
#include <fstream>
using namespace std;
int v[500000];
int tmp[500000];
void mergeSort(int st, int dr) {
if(st >= dr - 1) return;
int mid = (st + dr) / 2;
mergeSort(st, mid);
mergeSort(mid, dr);
int ci = st;
int ai = st, bi = mid;
while(ai < mid && bi < dr) {
if(v[ai] < v[bi]) tmp[ci++] = v[ai++];
else tmp[ci++] = v[bi++];
}
while(ai < mid) tmp[ci++] = v[ai++];
while(bi < dr) tmp[ci++] = v[bi++];
for(int i = st; i < dr; i++) {
v[i] = tmp[i];
}
cout << endl;
}
int main() {
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n;
fin >> n;
for(int i = 0; i < n; ++i) {
fin >> v[i];
}
mergeSort(0, n);
for(int i = 0; i < n; ++i) {
fout << v[i] << " ";
}
return 0;
}