Cod sursa(job #1023538)

Utilizator EllenaElena D Ellena Data 7 noiembrie 2013 10:12:53
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<iostream>
#include<fstream>
using namespace std;
int a[100];
void merge(int st,int mij,int dr)
{int b[1000];
int i=st;
int k=1;
int j=mij+1;
while(i<=mij && j<=dr)
     if (a[i]<a[j])
           b[k++]=a[i++];
     else
           b[k++]=a[j++];
while (i<=mij)
        b[k++]=a[i++];
while (j<=dr)
        b[k++]=a[j++];
int t=st;
for (k=1;k<=(dr-st)+1;k++)
        a[t++]=b[k];
}
void sort(int st,int dr)
{int mij;
if (st<dr)
  { mij=(st+dr)/2;
	sort(st,mij);
	sort(mij+1,dr);
	merge(st,mij,dr);
  }
}
int main()
{int n,i,dr,st;
ifstream f("algsort.in");
f>>n;
for(i=1;i<=n;i++)
   f>>a[i];
f.close();
sort(1,n);
ofstream g("algsort.out");
for(i=1;i<=n;i++)
   g<<a[i]<<" ";
return 0;
}