Pagini recente » Cod sursa (job #1150901) | Cod sursa (job #1811555) | Cod sursa (job #2432665) | Cod sursa (job #123808) | Cod sursa (job #1019862)
#include <iostream>
#include <fstream>
using namespace std;
int v[1000000],
s[1000000],
n;
void mrg(int l, int r, int m) {
int i = l,
j = m + 1,
k = 1;
while(i <= m && j <= r) {
if(v[i] < v[j]) {
s[k] = v[i];
i++;
} else {
s[k] = v[j];
j++;
}
k++;
}
if(i <= m)
while(i <= m) {
s[k] = v[i];
i++;
k++;
}
else {
while(j <= r) {
s[k] = v[j];
j++;
k++;
}
}
for(k = 1, i = l; i <= r; k++, i++)
v[i] = s[k];
}
void mSort(int l, int r) {
int m;
if(l < r) {
m = (l + r) / 2;
mSort(l, m);
mSort(m + 1, r);
mrg(l, r ,m);
}
}
int main () {
ifstream f("algsort.in");
ofstream g("algsort.out");
f >> n;
for(int i = 1; i <= n; i++)
f >> v[i];
mSort(1,n);
for(int i = 1; i <= n; i++)
g << v[i] << ' ';
f.close();
g.close();
return 0;
}