Pagini recente » Cod sursa (job #2093547) | Cod sursa (job #1821602) | Cod sursa (job #441357) | Cod sursa (job #3277613) | Cod sursa (job #1019947)
#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;}