Pagini recente » Cod sursa (job #55106) | Cod sursa (job #655913) | Cod sursa (job #858100) | Cod sursa (job #1406819) | Cod sursa (job #2898415)
#include <bits/stdc++.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n;
int v[500005];
int cop[500005];
void read() {
f >> n;
for (int i=1;i<=n;i++) {
f >> v[i];
}
}
void merge_sort(int st, int dr) {
if (st!=dr) {
int mij = (st+dr)/2;
merge_sort(st,mij);
merge_sort(mij+1,dr);
int ind=1;
int ind1=st,ind2=mij+1;
while (ind<=dr-st+1) {
if ((v[ind1]<=v[ind2] && ind1!=mij+1) || (ind2==dr+1)) {
cop[ind] = v[ind1];
ind1++; ind++;
}
else {
cop[ind] = v[ind2];
ind2++; ind++;
}
}
ind=1;
for (int i=st;i<=dr;i++) {
v[i] = cop[ind];
ind++;
}
}
}
int main()
{
read();
merge_sort(1,n);
for (int i=1;i<=n;i++) {
g << v[i] << ' ';
}
return 0;
}