Pagini recente » Cod sursa (job #3136501) | Cod sursa (job #2821955) | Cod sursa (job #2817286) | Cod sursa (job #1379820) | Cod sursa (job #644085)
Cod sursa(job #644085)
#include <iostream>
#include <fstream>
#define DN 500005
using namespace std;
int n,v[DN];
void merge(int l,int m,int d) {
int aux[DN];
int x=l,k=1,y=m+1;
for(;x<=m && y<=d;)
if(v[x]<v[y]) aux[k++]=v[x++];
else aux[k++]=v[y++];
for(;x<=m;aux[k++]=v[x++]);
for(;y<=d;aux[k++]=v[y++]);
int t=l;
for(k=1; k<=(d-l)+1;++k) v[t++]=aux[k];
}
void mergeSort(int ls, int ld) {
if(ls>=ld) return;
int m=(ls+ld)>>1;
mergeSort(ls,m);
mergeSort(m+1,ld);
merge(ls,m,ld);
}
int main(){
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(int i=1; i<=n; ++i) f>>v[i];
mergeSort(1,n);
for(int i=1; i<=n; ++i) g<<v[i]<<' ';
//for(int i=1; i<=n; ++i) cout<<v[i];
return 0;
}