Pagini recente » Cod sursa (job #2331299) | Cod sursa (job #542786) | Cod sursa (job #3224673) | Cod sursa (job #881197) | Cod sursa (job #2620873)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[500001],w[500001],n;
void mergeSort(int v[],int st,int dr){
if(st<dr){
int mijloc=(st+dr)/2;
mergeSort(v,st,mijloc);
mergeSort(v,mijloc+1,dr);
int i=st,j=mijloc+1,k=0;
while(i<=mijloc and j<=dr)
if(v[i]<v[j])
w[++k]=v[i++];
else
w[++k]=v[j++];
while(i<=mijloc)
w[++k]=v[i++];
while(j<=dr)
w[++k]=v[j++];
i=1;
for(j=st;j<=dr;j++ and i++)
v[j]=w[i];
}
}
int main() {
in>>n;
for(int i=0;i<n;i++)
in>>v[i];
mergeSort(v,0,n-1);
for(int i=0;i<n;i++)
out<<v[i]<<" ";
return 0;
}