Pagini recente » Cod sursa (job #1780575) | Cod sursa (job #2776507) | Cod sursa (job #3238235) | Cod sursa (job #1439197) | Cod sursa (job #2538521)
#include <iostream>
#include <fstream>
#define NMAX 500000
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,sir[NMAX+5],aux[NMAX+5];
void mergesort(int st,int dr){
if(st>=dr){
return;
}
int mij=(st+dr)/2;
mergesort(st,mij);
mergesort(mij+1,dr);
int l=0,i=st,j=mij+1;
while(i<=mij||j<=dr){
if(i<=mij&&(j>dr||sir[i]<=sir[j])){
aux[++l]=sir[i++];
}else{
aux[++l]=sir[j++];
}
}
for(int i=1;i<=l;i++){
sir[st+i-1]=aux[i];
}
}
int main(){
f>>n;
for(int i=1;i<=n;i++){
f>>sir[i];
}
mergesort(1,n);
for(int i=1;i<=n;i++){
g<<sir[i]<<' ';
}
f.close();
g.close();
}