RETO: Bubble sort

--Originally published at Migue´s Blog

El reto consiste en ordenar una seríe de números mediante la ordenación burbuja, la cual consiste en ir comparando cada elemento de una serie con el elemento siguiente, si estan en un lugar incorrecto, este proceso se repite varias veces hasta que el elemento mayor es desplazado al final y por consiguiente el elemento menor es desplazado al inicio.

Para cumplir con el reto realice el siguiente código

captura-de-pantalla-de-2016-10-26-23-05-02

captura-de-pantalla-de-2016-10-26-23-06-46captura-de-pantalla-de-2016-10-26-23-08-22En las lineas 3 y 4 se declaran las variables, para que luego no ocurran problemas debido a que se utilizan variables sin un valor asignado,

La variable “y”  corresponde al contador, al cual se le va a sumar 1 cada vez que se repita el ciclo, para que cuando “y” alcance a “x”, el cual es el numero de datos que queremos introducir ya no entre al ciclo.

Numeros es la lista en la que se van a almacenar los números para después compararlos entre ellos.

captura-de-pantalla-de-2016-10-26-23-09-01

Este es el ciclo en el cual se introducen los numeros, primero se pregunta cuantos numeros se quieren introducir, para que este sea el número de veces que se repite el ciclo, y por cada repetición el usuario introduce otro número.

captura-de-pantalla-de-2016-10-26-23-09-21

En esta última parte es en donde se comparan los elementos el número de vecs que sea necesario hasta que queden acomodados en orden.

Primero con el ciclo “for” hacemos que ese ciclo se repita dependiendo del número de elementos de la lista, así nos aseguramos que se repite suficientes veces para que cada número quede en su lugar.

“n” es el lugar que ocupa el elemento de la lista, se utiliza para poder comparar un elemento con el siguiente, n=elemento, n+1=elemento a comparar.

Con el condicional “if x>(n+1)” hacemos que solo entre al ciclo si todavía quedan elementos por comparar, porque de lo

nos marcará error al no existir elementos.

con el condicional if de la linea 16 comparamos el elemento siguiente (i2) con el elemento anterior(i1), si el “i2” es menor quiere decir que ese no es su lugar, por lo que en la linea 17 se intercambian estos dos elementos y se compara el siguiente elemento, si no fuera menor entonces ese si es su lugar, por lo que los elementos no se intercambian y este proceso se repite hasta que todos los elementos queden en orden.