Introducción a Bubble Sort en Java

La clasificación de burbujas es uno de los algoritmos más utilizados para ordenar datos en Java. La clasificación aquí se realiza comparando recursivamente los números adyacentes y desplazándolos en orden creciente o decreciente según sea necesario. Este desplazamiento de elementos se realiza hasta que todos los dígitos estén completamente ordenados en el orden requerido.

El nombre "Tipo de burbuja" de este algoritmo se debe a que los elementos de una matriz se abren camino hasta el comienzo. Comprendamos el algoritmo de clasificación de burbujas tomando un ejemplo.

Ejemplo: considere una matriz de números (6 1 8 5 3) que deben organizarse en orden creciente.

El algoritmo de clasificación de burbujas funciona en varias iteraciones hasta que encuentra que todos los números están ordenados.

Iteraciones

A continuación se muestran las iteraciones realizadas en Bubble Sort en Java, que es la siguiente:

Primera iteración

(6 1 8 5 3) - Comienza comparando los dos primeros números y desplaza el número menor de los dos a su derecha. Por lo tanto, entre 6 y 1, 1 es el número más pequeño que se desplaza hacia la izquierda y 6 hacia la derecha.

(1 6 8 5 3) - Luego compara los dos números adyacentes al cambiar una posición a la derecha. Aquí, el número 6 es menor que 8 y, por lo tanto, se mantiene el mismo orden.

(1 6 8 5 3) - Nuevamente, al cambiar una posición hacia la derecha, la comparación se realiza entre 8 y 5. El número 5 se desplaza hacia la izquierda, ya que es más pequeño que 8.

(1 6 5 8 3) - Aquí la comparación tiene lugar entre los números 8 y 3. El número 3 se desplaza a la izquierda ya que es menor que 8.

(1 6 5 3 8): este es el resultado final del pedido después de la primera iteración.

Segunda iteración

Dado que los números todavía no están completamente en su orden creciente, el programa pasa a la segunda iteración.

(1 6 5 3 8) - Aquí la comparación nuevamente comienza desde los primeros dos dígitos del resultado desde la primera iteración. Compara los números 1 y 6 y conserva el mismo orden ya que 1 es menor que 6.

(1 6 5 3 8) - Aquí se comparan los números 5 y 6. Se retiene el mismo orden ya que está en el orden creciente requerido.

(1 5 6 3 8) - Aquí la comparación tiene lugar entre los números 6 y 3. El número 3 se desplaza hacia la izquierda ya que es más pequeño que 6.

(1 5 3 6 8) - Los siguientes números 6 y 8 se comparan entre sí. Se retiene el mismo orden que en el orden esperado.

(1 5 3 6 8): este es el resultado final después de la segunda iteración. Aún así, podemos notar que los dígitos no están completamente ordenados en orden creciente. Aún así necesitamos intercambiar los números 5 y 3 para obtener el resultado final. Por lo tanto, el programa va para la tercera iteración.

Tercera iteración

(1 5 3 6 8): la tercera iteración comienza comparando los dos primeros dígitos 1 y 5. Dado que el orden es el esperado, se conserva igual.

(1 5 3 6 8) - Luego se comparan los números adyacentes 3 y 5. Como 5 es mayor que 3, se desplaza hacia el lado derecho.

(1 3 5 6 8) - La iteración continúa para comparar los números 5 y 6, 6 y 8. Como está en el orden requerido, retiene el orden.

(1 3 5 6 8) - Finalmente, la iteración se detiene cuando el programa atraviesa la comparación de cada elemento adyacente y encuentra que todos los dígitos están en orden creciente.

Como aquí solo había 5 elementos de una matriz que debían clasificarse, solo se necesitaron 3 iteraciones en total. A medida que aumentan los elementos en la matriz, también aumenta la cantidad de iteraciones.

Implementación de Bubble Sort usando Java

A continuación se muestra el código Java, que es la implementación del algoritmo de clasificación de burbujas. (Tenga en cuenta que la primera posición de una matriz en Java comienza en 0 y continúa en incrementos de 1, es decir, matriz (0), matriz (1), matriz (2) y continúa).

Código:

import java.util.Scanner;
public class BubbleSort (
static void bubbleSort(int() arraytest) (
int n = arraytest.length; //length of the array is initialized to the integer n
int temp = 0; //A temporary variable called temp is declared as an integer and initialized to 0
for(int i=0; i < n; i++)( // first for loop performs multiple iterations
for(int j=1; j < (ni); j++)(
if(arraytest(j-1) > arraytest(j))( // if loop compares the adjacent numbers
// swaps the numbers
temp = arraytest(j-1); // assigns the greater number to temp variable
arraytest(j-1) = arraytest(j); // shifts the lesser number to the previous position
arraytest(j) = temp; // bigger number is then assigned to the right hand side
)
)
)
)
public static void main(String() args) (
int arraytest() =(23, 16, 3, 42, 75, 536, 61); // defining the values of array
System.out.println("Array Before Doing Bubble Sort");
for(int i=0; i < arraytest.length; i++)( // for loop used to print the values of array
System.out.print(arraytest(i) + " ");
)
System.out.println();
bubbleSort(arraytest); // array elements are sorted using bubble sort function
System.out.println("Array After Doing Bubble Sort");
for(int i=0; i < arraytest.length; i++)(
System.out.print(arraytest(i) + " "); // for loop to print output values from array
)
)
)

Salida:

Ventajas y desventajas de Bubble Sort en Java

A continuación se presentan las diferentes ventajas y desventajas de la clasificación de burbujas en Java:

Ventajas

  1. El código es muy fácil de escribir y de entender. Por lo general, toma solo unos minutos.
  2. La implementación también es muy fácil.
  3. La clasificación de burbujas clasifica los números y los mantiene en la memoria, por lo tanto, ahorra mucha memoria.

Desventajas

  1. Este algoritmo no es adecuado para grandes conjuntos de datos, ya que la comparación lleva mucho tiempo. El tiempo que lleva ordenar los números de entrada aumenta exponencialmente.
  2. O (n 2) es la complejidad promedio de la clasificación de burbujas y O (n) es la complejidad del mejor caso (el mejor caso es cuando los elementos se ordenan en primer lugar) donde n es el número de elementos.

Aplicaciones en tiempo real

Dado que la clasificación de burbujas es capaz de detectar pequeños errores en la clasificación, se utiliza en gráficos por computadora. También se usa en el algoritmo de relleno de polígonos donde el revestimiento de vértices del polígono necesita ser ordenado.

Conclusión

En este artículo, vimos cómo funciona el algoritmo de clasificación de burbujas y cómo se puede implementar utilizando la programación Java. Bubble sort es un algoritmo muy estable que se puede implementar fácilmente para conjuntos de datos comparativamente pequeños. Es un caso de algoritmo de comparación y es usado por principiantes debido a su simplicidad.

Artículos recomendados

Esta es una guía de Bubble Sort en Java. Aquí discutimos múltiples iteraciones para realizar el ordenamiento de burbujas en Java y su implementación de código junto con ventajas y desventajas. También puede consultar los siguientes artículos para obtener más información:

  1. Ordenar burbujas en JavaScript
  2. Ordenar en R
  3. Matrices 3D en Java
  4. Matrices en C #
  5. Ordenar burbujas en Python