| |||
método de la burbuja Hola, quisiera que alguien me explicara cómo funciona el método de la burbuja para ordenar un conjunto de números de un vector. He mirado muchas páginas, pero no consigo entenderlo. Gracias. |
| |||
Respuesta: método de la burbuja Tengo problemas para entender el siguiente algoritmo que ordena un vector de menor a mayor:
Código C:
Ver original 1º En el tercer bucle for por qué pone
Código C:
.Ver original 2º Dentro del if ¿qué hace esta instrucción?
Código C:
la variable aux ¿qué hace? y a continuación ¿que significa Ver original
Código C:
.Ver original Por último la instrucción
Código C:
¿qué hace? ¿por qué aquí la variable aux se coloca a la derecha y arriba a la izquierda. Espero que puedan aclararme estas dudas. Gracias. Ver original |
| |||
Respuesta: método de la burbuja Bien es muy sencillo de enter el metodo de la burbuja, pero debo aclara que tu dudas no son precisamente con respecto al metodo si no mas bien con respecto a la programacion con arreglos. Aun asi tratare de explicarte. Por curiosidad tu implementaste ese programa: Veamos el procedimiento, con un ejemplo: supon que tienes el siguiente conjunto de numeros: posicion 0 1 2 3 4 5 6 7 8 9 arreglo 3 4 2 1 8 9 0 7 5 6 y k vas a utilizar el metodo de la burbuja q en este caso esta representado por el siguiente codigo for(i=0; i<(TAM-1); i++) for(j=i+1; j<TAM; j++) if(v[j]<v[i]){ aux=v[j]; v[j]=v[i]; v[i]=aux; } el primer for va a recorrer los elementos desde el primer elemento hasta un elemento antes del ultimo elemento, en este caso desde el elemento 0 hasta el elemento 8, ya que una vez que el primer ciclo llega hasta aqui en automatico o por default el ultimo elemento quedaria ya ordenado el segundo for va desde desde i+1 hasta el final del arreglo, esto debido que esta en el supuesto de que todos elementos que van desde 0 hasta i ya estan ordenados. en cuanto a v[j] = v[i], significa que el valor que se encuentra en la posicion j va a ser reemplazado por el valor que se encuentra en la posicion i. debes tomar en cuenta q tu no puedes intercambiar el valor de dos variables asi var1=1 var2=2 var1= var2 var2= var1 ya que la primera asignacion var1 tomara el valor de 2 asi k cuando var2=var1, var1 ya valdra 2 y no 1. Por eso que se hace uso de una variable auxiliar var1=1 var2=2 tmp=var1 tmp= var2 var2= var1 var1=tmp |
Etiquetas: |