Cod sursa(job #1019947)

Utilizator cata25Matei Catalin Daniel cata25 Data 1 noiembrie 2013 12:17:23
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<iostream.h>
#include<math.h>
#include<fstream.h>
#include<string.h>
ifstream f("text.in");
ofstream g("text.out");
int a[50],i,n;
void merge(int st, int m, int dr)
{int i,j,k,b[50],t;
i=st;
j=m+1;
k=1;
while(i<=m&&j<=dr)
if(a[i]<a[j])b[k++]=a[i++];
	else b[k++]=a[j++];
while(i<=m)b[k++]=a[i++];
while(j<=dr)b[k++]=a[j++];
t=st;
for(k=1;k<=dr-st+1;k++)a[t++]=b[k];
}
void merge_sort(int st, int dr)
{int m;
if(st<dr)
{m=(st+dr)/2;
merge_sort(st,m);
merge_sort(m+1,dr);
merge(st,m,dr);
}}
int main()
{f>>n;
for(i=1;i<=n;i++)f>>a[i];
merge_sort(1,n);
for(i=1;i<=n;i++)g<<a[i]<<' ';
f.close();
g.close();
return 0;}