holas señores nose creo que algo le falta a este pedaso de codigo que no me quiere funcionar en mi programa a ver denle una ojeada
void mezcla(int xa[MAX],int xb[MAX], int na,int nb,int xc[MAX])
{
int i,j,k,cmp=0,asi=0;
i=j=k=0;
while (i<na && j<nb)
{
if(xa[i]<=xb[j])
{
xc[k]=xa[i++];
asi++;
}
else
{
xc[k]=xb[j++];
asi++;
}
k++;
cmp++;
}
if (j<nb)
for (int p=j; p<nb; p++)
xc[k++]=xb[p];
else
for (int p=i; p<na; p++)
xc[k++]=xa[p];
printf("\n\n\n -= Tus elementos han sido ordenados =-");
Mapers=cmp;
MaperS=asi;
//printf("\n -= En total se hicieron -%d- comparaciones y -%d- asignaciones =-",cmp,asi);
}
//*******************************************************************//
//*******************************************************************//
void merge(int x[MAX],int n)
{
int a[MAX],b[MAX],i,j;
if (n==0||n==1)
return;
else
{
for(i=0;i< n/2; i++)
a[i]=x[i];
j=0;
for(i=0;i<n; i++)
b[j++]=x[i];
merge(a,n/2);
merge(b,n-(n/2));
mezcla(a,b,n/2,n-(n/2),x);
}
}