Javascript De Clasificación De Burbujas

| | | |

Còmo escribir una clasificaciòn de burbujas de JavaScript

¿Tiene una lista de valores que necesita ordenar? El tipo de burbuja podrìa ser para ti. Los tipos de burbujas comparan elementos adyacentes en una lista e intercambian sus posiciones si no están en el orden correcto.

En esta guìa, vamos a hablar sobre qué son los tipos de burbujas y còmo funcionan. Veremos còmo escribir una clasificaciòn de burbujas en JavaScript para que pueda comenzar rápidamente con esta clasificaciòn.

¬°Comencemos!

¿Qué es una clasificaciòn de burbujas de JavaScript?

Una clasificaciòn de burbuja, o una " clasificaciòn de hundimiento, " es un algoritmo de clasificaciòn simple que compara un par de elementos adyacentes en una lista. Si un elemento no está en el orden correcto, intercambiamos el elemento con el anterior. De lo contrario, el elemento permanece en el mismo lugar.

La clasificaciòn de burbujas obtuvo su nombre porque recorre una lista y mueve todos los valores más grandes al final. Otra forma de pensar sobre esto es que los valores más grandes "burbujean" al final de la lista. Las clasificaciones de burbujas funcionan tanto en orden ascendente como descendente.

Hay dos tipos de clasificaciones de burbujas: regulares y optimizadas.

Las clasificaciones de burbujas regulares hacen todas las comparaciones posibles independientemente de si una matriz está ordenada . Los ordenamientos de burbujas optimizados dejan de ejecutarse después de que una iteraciòn ha finalizado si no se ha producido ning√∫n intercambio.

Tutorial de JavaScript de ordenamiento de burbujas

Comenzaremos hablando sobre còmo funcionan los ordenamientos de burbujas, y luego lo haremos implementar uno en JavaScript. Considere la siguiente lista de elementos:

9 3 2 11

Para comenzar nuestra clasificaciòn, compararemos el primer y el segundo n√∫mero. Si el primer n√∫mero es mayor que el segundo, intercambiamos los elementos. De lo contrario, los elementos permanecen en el mismo lugar.

9 es mayor que 3, por lo que las posiciones de los dos primeros elementos se intercambian:

3 9 12 2

Este proceso contin√∫a hasta que comparamos todos los elementos de la lista.

9 no es mayor que 12, por lo que estos elementos permanecen en el mismo lugar. 12 es mayor que 2, por lo que estos elementos se intercambian:

3 9 2 12

Nuestra lista comienza ahora para parecer más ordenado. Nuestro algoritmo ha iterado a través de la lista una vez. Continuará haciéndolo hasta que ordenemos todos los elementos. En la siguiente iteraciòn, nuestro programa hace las siguientes comparaciones:

Después de esta iteraciòn, nuestra lista se ve asì:

3 2 9 12

Ya casi llegamos. En la siguiente iteraciòn intercambiamos los dos primeros elementos, lo que nos da una lista completamente ordenada:

¬°Lo hicimos! Hemos ordenado una lista usando una clasificaciòn de burbujas. Ahora viene la parte complicada: implementar este algoritmo en JavaScript.

Còmo escribir una clasificaciòn de burbujas en JavaScript

Podemos escribir un algoritmo de clasificaciòn de burbujas en JavaScript. Crearemos dos tipos de burbujas: una clasificaciòn de burbujas normal y una optimizada.

Clasificaciòn de burbujas normal

Comencemos por definir un funciòn JavaScript que realiza nuestra clasificaciòn de burbujas:

Esta funciòn toma una matriz de n√∫meros y la ordena usando el algoritmo de clasificaciòn de burbujas. Para empezar, el algoritmo crea un bucle for que recorre cada elemento de la lista.

Nuestro còdigo usa el atributo de longitud de matriz para calcular la longitud de la lista. Luego, declaramos otro bucle for. Este bucle for hace comparaciones entre cada elemento de la lista.

For en cada iteraciòn de nuestro ciclo interno, nuestro programa ejecuta una declaraciòn if. Esta declaraciòn if de JavaScript comprueba si el n√∫mero a la izquierda de una comparaciòn es mayor que el n√∫mero a la derecha. Si es asì, nuestro programa intercambia los n√∫meros. De lo contrario, no pasa nada.

Devolvemos la matriz al programa principal después de ordenarla. Llamemos a nuestra funciòn y le demos un ejemplo matriz:

Hemos declarado un JavaSc ript variable llamada numbersToSort que contiene los n√∫meros que queremos ordenar. Luego llamamos a nuestro método sortItems () y pasamos esta variable como parámetro. Esto ordena nuestra lista. Imprimimos la lista recién ordenada en la consola JavaScript del navegador : [2, 3, 9, 11].

Este còdigo ordena nuestro lista en orden ascendente. Podemos cambiar este comportamiento reemplazando el " mayor que " regìstrate en nuestro " if " declaraciòn con un " menor que " signo:

¬°Ya casi terminamos! Hagamos nuestro còdigo más eficiente implementando una clasificaciòn de burbujas con una variable intercambiada.

Clasificaciòn de burbujas optimizada

Las clasificaciones de burbujas optimizadas introducen una nueva variable. Esta variable realiza un seguimiento de si se produce un intercambio. La clasificaciòn se detendrá si no se han producido cambios.

Para hacer que nuestra clasificaciòn de burbujas sea más eficiente, reemplazaremos nuestro bucle for externo con un bucle while:

El ciclo while se ejecutará hasta que " se cambie " es igual a falso. De forma predeterminada, el valor de " swapped " es verdad. En cada iteraciòn de nuestra lista, establecemos el valor de " swapped " falso. Si se produce un intercambio, el valor de " swapped " vuelve a verdadero.

Esto nos permite realizar un seguimiento de si se realizò un intercambio en una iteraciòn. Si no se realizò ning√∫n intercambio, significa que nuestra lista está ordenada. Si este es el caso, podemos detener nuestra clasificaciòn de burbujas .

Intentemos utilizar esta clasificaciòn de burbujas:

Nuestro còdigo devuelve: [2, 3, 9, 11]. Nuestro La lista está ordenada. Este algoritmo es más eficiente porque no realiza comparaciones innecesarias. Tan pronto como se ordena la lista, el algoritmo deja de ejecutarse.

Conclusiòn

Las clasificaciones de burbujas son una una forma sencilla de ordenar una lista. Comparan elementos adyacentes en una lista y los intercambian si no están en el orden correcto.

Hay tipos más eficientes disponibles, como un orden de inserciòn o un tipo de combinaciòn. Estos tipos son más avanzados. Las clasificaciones de burbujas suelen ser la mejor manera de comenzar a aprender acerca de los algoritmos de clasificaciòn.

Para obtener más informaciòn sobre la codificaciòn en JavaScript, lea nuestro Còmo aprender Guìa de JavaScript .