Cod sursa(job #962849)

Utilizator alexsuciuAlex Suciu alexsuciu Data 15 iunie 2013 20:19:36
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<iostream>
#include<fstream>
using namespace std;

long v[500001],n,i;
void mergesort(long i,long m,long j)

{long a[500001],x=i,k=1,y=m+1;
while(x<=m && y<=j)
     if (v[x]<v[y])
           a[k++]=v[x++];
     else
           a[k++]=v[y++];
 while (x<=m)
        a[k++]=v[x++];
 while (y<=j)
        a[k++]=v[y++];
 int t=i;
 for (k=1;k<=(j-i)+1;k++)
        v[t++]=a[k];
}

void divimp(long i,long j)

{if (i<j)
    {long m=(i+j)/2;
     divimp(i,m);
     divimp(m+1,j);
     mergesort(i,m,j);}
}

int main()
{
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    divimp(1,n);
    for(i=1;i<=n;i++)
        g<<v[i]<<" ";
}