Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

DUDA metodo de ordenamiento

toñonv

Bovino adicto
Desde
26 Sep 2009
Mensajes
704
static void burbuja_mejorada()
{
int aux, i, j, cambio;
for (i = 0; i < n - 1; i++)
{
cambio = 0;
for (j = 0; j - n - i; j++)
{
if (numeros[j] > numeros[j + 1])
{
aux = numeros[j];
numeros[j] = numeros[j + 1];
numeros[j + 1] = aux;
cambio = 1;
}
}
if (cambio == 0)
break;
}
}


No se puede convertir implicitamente el tipo int en bool...

como lo compongo, nunca me habia salido ese error
 
prueba encerrando entre parentesis el n-1 y el n-i para que asi haga primero la resta y luego compare
 
Hola amigo creo que el problema esta en que en la sentencia n-1 mas bien, en general donde ocupas n no esta definida la variable de modo que el compilador no sabra que es n. Misma situacion pasa con la variable numeros no esta definida.

Saludos
 
no se si todavia te sirve pero creo ke en "for (j = 0; j - n - i; j++)" deverias cambiar la parte de enmedio por j=n-i o eso pienso yo!!
 
static void burbuja_mejorada()
{
int aux, i, j, cambio;
for (i = 0; i < n - 1; i++)
{
cambio = 0;
for (j = 0; j - n - i; j++)
{
if (numeros[j] > numeros[j + 1])
{
aux = numeros[j];
numeros[j] = numeros[j + 1];
numeros[j + 1] = aux;
cambio = 1;
}
}
if (cambio == 0)
break;
}
}


No se puede convertir implicitamente el tipo int en bool...

como lo compongo, nunca me habia salido ese error

Segun entiendo, al ciclo le falta la condicion, deberia quedar asi...
for (j = 0; j < n - i; j++)
 
Volver
Arriba