Pagini recente » Cod sursa (job #2802511) | Cod sursa (job #3310949) | Cod sursa (job #846235) | Cod sursa (job #3267425) | Cod sursa (job #3326407)
#include <fstream>
using namespace std;
const int MAXN=5e5;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[MAXN+1],b[MAXN+1];
void mergesort(int l,int r) {
if(l<r) {
int m=(l+r)/2;
mergesort(l,m);
mergesort(m+1,r);
int i=l,j=m+1,k=0;
while(i<=m&&j<=r) {
if(v[i]<v[j]) {
b[k++]=v[i++];
} else {
b[k++]=v[j++];
}
}
while(i<=m) {
b[k++]=v[i++];
}
while(j<=r) {
b[k++]=v[j++];
}
j=0;
for(i=l; i<=r; i++) {
v[i]=b[j];
j++;
}
}
}
int main() {
int n,i;
fin>>n;
for(i=0; i<n; i++) {
fin>>v[i];
}
mergesort(0,n-1);
for(i=0; i<n; i++) {
fout<<v[i]<<' ';
}
return 0;
}