Pagini recente » Borderou de evaluare (job #2506338) | Cod sursa (job #2411243) | Cod sursa (job #2165684) | Borderou de evaluare (job #1286613) | Cod sursa (job #2163233)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[ 100001 ],v[ 100001 ], n, i, q, nr;
void merge_sort(int a[], int in, int sf) {
if (in == sf) {
return;
}
int mij = (in + sf) / 2;
merge_sort(a, in, mij);
merge_sort(a, mij + 1, sf);
int nr=0;
int l=in, r=mij+1;
while(l<=mij&& r <= sf) {
if(a[l] < a[r]) {
v[++nr] = a[l];
++l;
}
else{
v[++nr] = a[r];
++r;
}
}
while(l<=mij) {
v[++nr]=a[l];
++l;
}
while(r<=sf) {
v[++nr]=a[r];
++r;
}
int i,t;
for(i=in, t=1; i<=sf; ++i)
a[i]=v[t++];
}
int main(){
cin >> n;
for( i = 1; i <= n; ++i )
cin >> a[ i ];
merge_sort(a, 1, n );
for( i = 1; i <= n; ++i )
cout << a[ i ] << ' ';
return 0;
}