Cod sursa(job #1021814)

Utilizator Dayanna000Amegica Dayanna Dayanna000 Data 4 noiembrie 2013 11:48:26
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.17 kb
#include<iostream>
#include<fstream>
using namespace std;
int a[500001];
void interclasare(int i,int m,int j)
   {
       int x,y,c[500001],k=0;
       x=i;
       y=m+1;
       while(x<=m && y<=j)
             if(a[x]<a[y])
                {
                    k++;
                    c[k]=a[x];
                    x++;
                }
                else
                {
                    k++;
                    c[k]=a[y];
                    y++;
                }
        while(x<=m)
          {
              k++;
              c[k]=a[x];
              x++;
          }
        while(y<=j)
          {
              k++;
              c[k]=a[y];
              y++;
          }
        x=1;
        for(y=i;y<=j;y++)
           {
               a[y]=c[x];
               x++;
           }
   }
void merge(int i,int j)
  {
      int m;
      if(i<j)
        {
           m=(i+j)/2;
           merge(i,m);
           merge(m+1,j);
           interclasare(i,m,j);
        }
  }
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
int i,n;
f>>n;
for(i=1;i<=n;i++)
  f>>a[i];
merge(1,n);
for(i=1;i<=n;i++)
  g<<a[i]<<"  ";
f.close();
g.close();
return 0;
}