Pagini recente » Cod sursa (job #596432) | Cod sursa (job #1101265) | Cod sursa (job #1383187) | Cod sursa (job #881152) | Cod sursa (job #2620880)
#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=1;i<=n;i++)
in>>v[i];
mergeSort(v,1,n);
for(int i=1;i<=n;i++)
out<<v[i]<<" ";
return 0;
}