Pagini recente » Cod sursa (job #1475517) | Cod sursa (job #1318421) | Cod sursa (job #1509642) | Cod sursa (job #23721) | Cod sursa (job #3037758)
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 5e5+2;
int n,a[NMAX];
ifstream fin("algsort.in");
ofstream fout("algsort.out");
void interclas(int st, int mid, int dr){
int i = st, j = mid+1;
int c[NMAX], k = 0;
while(i <= mid && j <= dr){
if(a[i] < a[j]){
c[++k] = a[i++];
}else{
c[++k] = a[j++];
}
}
for(; i <= mid; i++){
c[++k] = a[i];
}
for(; j <= dr; j++){
c[++k] = a[j];
}
for(int i = st; i <= dr; i++){
a[i] = c[i-st+1];
}
}
void msort(int st, int dr){
if(st < dr){
int mid = ((st+dr)>>1);
msort(st, mid);
msort(mid+1, dr);
interclas(st, mid, dr);
}
}
int main()
{
fin >> n;
for(int i = 1; i <= n; i++){
fin >> a[i];
}
msort(1, n);
for(int i = 1; i <= n; i++){
fout << a[i] << " ";
}
return 0;
}