Cod sursa(job #1023197)

Utilizator dixiie2494Hristache Diana dixiie2494 Data 6 noiembrie 2013 16:20:04
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<iostream>

using namespace std;
void mergesort(int n,int v[])
{ int i,h,c,d,t;
int u[n],w[n];
if(n==1) return;
if(n==2) {
         if(v[0]>v[1])
         {t=v[0];v[0]=v[1];v[1]=t;}
         return;
         }
         h=n/2;
         for(i=0;i<h;i++)
         u[i]=v[i];
         for(i=h;i<n;i++)
         w[i-h]=v[i];
         mergesort(h,u);
         mergesort(n-h,w);
         c=0;d=0;
         for(i=0;i<h;i++)
         { while ((c<n-h)&&(w[c]<=u[i]))
         {v[d]=w[c];
         d++;c++;
         }
         v[d]=w[i];d++;
         }
         }
int main ()
{ int n,i,v[500000];
cin>>n;
for(i=0;i<n;i++)
cin>>v[i];
mergesort(n,v);
for(i=0;i<n;i++)
cout<<v[i]<<" ";
cin>>n;
return 0;
}