{
int cambio=1,lizq,lder,lsal,i;
int otral,movlizq,movlsal,aux,*auxvec;
float compara=0,movimiento=0;
while (cambio==1)
{
auxvec=(int *)(malloc(n*sizeof(int)));
cambio=0;
lizq=0;
lder=n-1;
lsal=0;
otral=n-1;
movlizq=1;
movlsal=1;
while(lizq != lder)
{
compara++;
if (vec[lizq]>vec[lder])
{
aux=lizq;
lizq=lder;
lder=aux;
movlizq=-movlizq;
}
auxvec[lsal]=vec[lizq];
movimiento++;
lsal=lsal+movlsal;
lizq=lizq+movlizq;
compara++;
if (vec[lizq-movlizq]>vec[lizq])
{
compara++;
while (vec[lder+movlizq] <= vec[lder])
{
auxvec[lsal]=vec[lder];
movimiento++;
lsal=lsal+movlsal;
lder=lder-movlizq;
}
cambio=1;
movlsal=-movlsal;
aux=lsal;
lsal=otral;
otral=aux;
}
}
auxvec[lsal]=vec[lizq];
movimiento++;
for(i=0;i
vec[i]=auxvec[i];
movimiento++;
}
}
*comp=compara;
*mov=movimiento;
}
1 comentario:
no hay condición en el último for
Publicar un comentario