Algoritmo de clasificación de burbujas

La clasificación de burbujas es un algoritmo simple que se utiliza para clasificar un conjunto dado de n elementos proporcionados en forma de una matriz con n número de elementos. Bubble Sort compara todos los elementos uno por uno y los clasifica según sus valores.

Si la matriz dada tiene que ser ordenada en orden ascendente, entonces la bubble sort comenzará comparando el primer elemento de la matriz con el segundo elemento, si el primer elemento es mayor que el segundo elemento, intercambiará ambos elementos, y luego pasará a comparar el segundo y el tercer elemento, y así sucesivamente.

Si tenemos total n elementos, luego debemos repetir este proceso n-1 veces.

Se conoce como clasificación de burbujas, porque con cada iteración completa, el elemento más grande en la matriz dada, burbujea hacia el último lugar o el índice más alto, al igual que una burbuja de agua sube a la superficie del agua.

La clasificación se lleva a cabo recorriendo todos los los elementos uno por uno y compararlo con el elemento adyacente e intercambiarlos si es necesario.

NOTA: Si no está familiarizado con la clasificación en la estructura de datos, debe fi Primero aprenda lo que es la clasificación para saber sobre los conceptos básicos de la clasificación.

Implementación del algoritmo de clasificación de burbujas

Los siguientes son los pasos involucrados en la clasificación de burbujas (para clasificar una matriz dada en orden ascendente):

  1. Comenzando con el primer elemento (índice = 0), compare el elemento actual con el siguiente elemento de la matriz.
  2. Si el elemento actual es mayor que el siguiente elemento de la matriz, cámbielos.
  3. Si el elemento actual es menor que el siguiente elemento, muévase al siguiente elemento. Repita el paso 1.

Consideremos una matriz con valores {5, 1, 6, 2, 4, 3}

A continuación, tenemos una representación gráfica de cómo la clasificación de burbujas clasificará la matriz dada.

Entonces, como podemos ver en la representación anterior, después de la primera iteración, 6 se coloca en el último índice, que es la posición correcta para él.

De manera similar, después de la segunda iteración, 5 estará en el penúltimo índice, y así sucesivamente.

Hora de escribir el código para la clasificación de burbujas:

Aunque la lógica anterior clasificará una matriz sin clasificar, el algoritmo anterior no es eficiente porque, según la lógica anterior, el for bucle seguirá ejecutándose durante 6 iteraciones incluso si la matriz se ordena después de la segunda iteración.

Por lo tanto, podemos optimizar claramente nuestro algoritmo.

Algoritmo de clasificación de burbujas optimizado

Para optimizar nuestro bubb le sort algoritmo, podemos introducir un flag para monitorear si los elementos se intercambian dentro del bucle for interno.

Por lo tanto, en el ciclo interno for, verificamos si el intercambio de elementos se está realizando o no, cada vez.

Si para una iteración en particular, no se realizó ningún intercambio lugar, significa que la matriz ha sido ordenada y podemos saltar fuera del ciclo for, en lugar de ejecutar todas las iteraciones.

Consideremos una matriz con valores {11, 17, 18, 26, 23}

A continuación, tenemos una representación gráfica de cómo la clasificación de burbujas optimizada clasificará la matriz dada.

Como podemos ver, en la primera iteración, se realizó el intercambio, por lo que actualizamos nuestro valor flag a 1, como resultado, la ejecución ingresa nuevamente al bucle for. Pero en la segunda iteración, no se producirá ningún intercambio, por lo que el valor de flag permanecerá 0 y la ejecución saldrá del ciclo.

En el código anterior, en la función bubbleSort, si para un ciclo completo único de j iteración (bucle for interno), no se realiza ningún intercambio, luego flag permanecerá 0 y luego saldremos de los for bucles, porque la matriz ya ha sido ordenada.

Análisis de complejidad de la clasificación de burbujas

En la clasificación de burbujas, n-1 se realizarán comparaciones en el primer paso, n-2 en la segunda pasada, n-3 en la tercera pasada y así sucesivamente. Entonces, el número total de comparaciones será,

(n-1) + (n-2) + (n-3) + ….. + 3 + 2 + 1Sum = n (n- 1) /2i.e O (n2)

Por lo tanto, la complejidad temporal de Bubble Sort es O (n2).

La principal ventaja de Bubble Sort es la simplicidad del algoritmo.

La complejidad del espacio para Bubble Sort es O (1), porque solo se requiere un único espacio de memoria adicional, es decir, para la variable temp.

Además, el mejor caso de complejidad de tiempo será O (n), es cuando la lista ya está ordenada.

A continuación se muestra la complejidad de tiempo y espacio para el algoritmo de clasificación de burbujas.

Ahora que hemos aprendido el algoritmo de clasificación de burbujas, también puede consultar estos algoritmos de clasificación y sus aplicaciones:

  • Ordenar por inserción
  • Ordenar por selección
  • Orden rápido
  • combinar Ordenar
  • Ordenar montón
  • Ordenar contando

Write a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *