Hola a todos, hace poco me han enseñado el metodo burbuja, y al chekearlo, no entiendo perfectamente todo el codigo, es por eso que les pido ayuda para saber si me podrian ayudar a interpretarlo linea por linea y asi yo pueda aprender mejor.Salu2
Código:
void burbujaA(int L[],int n){
int aux;
for (int i = n; i > 1; i--) {
for (int j = 1; j < i; j++) {
if(L[j-1]>L[j]){
aux=L[j-1];
L[j-1]=L[j];
L[j]=aux;
}
}
}
}
Antetodo gracias a todos.
Haz un ejemplo a mano en papel y ejecuta el algoritmo paso a paso para que le entiendas
Ejemplo:
Se tiene la siguiente lista de 4 elementos 45,11,26,3
entonces
n=4
L=[45,11,26,3]
Paso 1:
i=n=4
j=1
aux=null aux es una variable de paso, es decir, para almacenar un valor que se va a colocar en otra posicion de la lista
el for interno verifica si j<i o sea 1<4 como es verdadero se ejecuta lo siguiente
si L[j-1]>L[j] o sea L[1-1]>L[1] o sea si L[0]>L[1] o sea si 45>11
poner en aux lo que haya en L[j-1] o sea 45
poner en L[j-1] lo que haya en L[j] o sea 11
poner en L[j] lo que se puso en aux o sea 45 - hasta aquí ya intercambiamos los valores y la lista queda como L[11,45,26,3]
Paso 2: terminó el bloque de código y solo se incrementa j en 1 entonces
i=4
j=2
el for interno verifica si j<i o sea 2<4 como es verdadero se ejecuta lo siguiente
si L[j-1]>L[j] o sea L[2-1]>L[2] o sea si L[1]>L[2] o sea si 45>26
poner en aux lo que haya en L[j-1] o sea 45
poner en L[j-1] lo que haya en L[j] o sea 26
poner en L[j] lo que se puso en aux o sea 45 - hasta aquí ya intercambiamos los valores y la lista queda como L[11,26,45,3]
Paso 3: terminó el bloque de código y solo se incrementa j en 1 entonces
i=4
j=3
el for interno verifica si j<i o sea 3<4 como es verdadero se ejecuta lo siguiente
si L[j-1]>L[j] o sea L[3-1]>L[3] o sea si L[2]>L[3] o sea si 45>3
poner en aux lo que haya en L[j-1] o sea 45
poner en L[j-1] lo que haya en L[j] o sea 3
poner en L[j] lo que se puso en aux o sea 45 - hasta aquí ya intercambiamos los valores y la lista queda como L[11,26,3,45]
Paso 4: terminó el bloque de código y solo se incrementa j en 1 entonces
i=4
j=4
el for interno verifica si j<i o sea 4<4 como es falso no se ejecuta el codigo del if
Paso 5: terminó el bloque de código y se decrementa i en 1 y se asigna 1 a j entonces
i=3
j=1
el for interno verifica si j<i o sea 1<3 como es verdadero se ejecuta lo siguiente
si L[j-1]>L[j] o sea L[1-1]>L[1] o sea si L[0]>L[1] o sea si 11>26
como no es mayor no se intercambia
....
...
etc etc
Te toca completar el ejercicio para que vayas viendo como funciona el algoritmo, verás que al final queda la lista ordenada.
Espero te haya servido de ayuda.
Saludos!