Cod sursa(job #654392)

Utilizator Laura_MMiclescu Laura Laura_M Data 30 decembrie 2011 13:42:57
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include <iostream>
#include <fstream>

using namespace std;

int a[100], n;

void interclasare (int i, int m, int j)
{
     int b[100];
     int x=i;
     int k=1; 
     int y=m+1;
     while ((x<=m)&&(y<=j))
       if (a[x]<a[y])
           b[k++]=a[x++];
       else 
           b[k++]=a[y++];
     while (x<=m)
           b[k++]=a[x++];
     while (y<=j)
           b[k++]=a[y++];
     int t=i;
     for (k=i; k<=(j-i)+1; k++)
          a[t++]=b[k];
           
}

void div_imp (int i, int j)
{
     if (i<j)
        {int m=(i+j)/2;
         div_imp(i,m);
         div_imp(m+1,j);
         interclasare(i,m,j);}
}

int main()
{
    int a[100], p=0, q=0;
    fstream f("algsort.in", ios::in);
    while (!f.eof())
      {p++;
       f>>a[p];
       q++;}
    for (p=1; p<q; p++)
        cout<<a[p]<<" ";
    f.close();
    div_imp(1,n);              
    fstream g("algsort.out", ios::out);
    for (p=1; p<q; p++)
         g>>a[p];
    g.close();
    return 0;     
}