Pagini recente » Cod sursa (job #1686490) | tabletennis | Cod sursa (job #681644) | Cod sursa (job #1304782) | Cod sursa (job #1022930)
#include <iostream>
#include <stdlib.h>
using namespace std;
int a[100];
void merge(int,int,int);
void mergesort(int st,int dr)
{
int m;
if(st<dr)
{
m=(st+dr)/2;
mergesort(st,m);
mergesort(m+1,dr);
merge(st,m,dr);
}
}
void merge(int st,int m,int dr)
{
int h,i,j,b[100],k;
h=st;
i=st;
j=m+1;
while((h<=m)&&(j<=dr))
{
if(a[h]<=a[j])
{
b[i]=a[h];
h++;
}
else
{
b[i]=a[j];
j++;
}
i++;
}
if(h>m)
{
for(k=j;k<=dr;k++)
{
b[i]=a[k];
i++;
}
}
else
{
for(k=h;k<=m;k++)
{
b[i]=a[k];
i++;
}
}
for(k=st;k<=dr;k++) a[k]=b[k];
}
int main()
{
int n,i;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>a[i] ;
}
mergesort(1,n);
cout<<endl;
for(i=1;i<=n;i++)
cout<<a[i]<<" ";
system("PAUSE");
return 0;
}