Bubble Sort Python

Bubble Sort Python
La clasificación es el proceso de organizar los valores en orden presentes en forma de listas. Diferentes tipos de clasificación discriminan debido a sus técnicas y enfoques de uso como clasificación rápida, clasificación de selección, clasificación de fusión, clasificación de burbujas, etc. Este tutorial está relacionado con el tipo de burbujas.

Ordenamiento de burbuja

Esta es la organización de elementos de una matriz que se ocupa del uso del algoritmo de clasificación más simple aplicado cambiando los elementos adyacentes repetidamente si el orden está mal.

Bubble Sort Working

Para ordenar los valores en orden ascendente, la primera iteración incluye el proceso de comparación y intercambio. El primer valor de índice y el segundo se comparan. Si se cumple la condición, se produce el intercambio y se repite hasta el final.

Algoritmo / Pseudo Código para clasificación de burbujas

función (matriz)
Porque el valor de la derecha
Intercambiar el valor izquierdo y el valor derecho
función final

Ejemplo 1

El mecanismo de clasificación de burbujas se aplica al lenguaje de programación de Python utilizando la función llamada bubble sort. La sintaxis para la función es que se usa una palabra clave 'def' junto con el nombre de la función. En el parámetro de función, hemos pasado una matriz que debe ser ordenada por la función. Entonces, ahora veremos la funcionalidad completa o diremos que el núcleo de todo el proceso de clasificación se define en el cuerpo de la función. En primer lugar, declararemos la longitud de la matriz a una variable a través de un operador de asignación utilizando la función incorporada len ().

# n = len (arr)

Para acceder a cualquier elemento en una matriz, siempre usamos un bucle for en cualquier lenguaje de programación. Solo así, Python también utiliza el bucle "para" en el proceso de clasificación para que sea factible para el usuario. Entonces la matriz se atravesará usando un bucle para un bucle.

# Para i en el rango (n - 1):

Aquí "I" es la variable que representa el número de índice en la matriz que tiene la matriz de un tamaño fijo menos uno. Como 'n' representa el tamaño de la matriz, así (n-1) representa el recorrido del bucle a la posición del tamaño menos uno para que podamos iterar el bucle una vez nuevamente después de una sola iteración.

Como se describió anteriormente, los dos índices adyacentes más cercanos se comparan para el tipo de burbuja. Al usar el bucle anterior, accederemos a un índice. Digamos el primero, para acceder al siguiente índice; Además necesitamos un bucle. Este es el bucle interno, y el mencionado anteriormente se declara como un bucle exterior. Este fenómeno se asemeja a la matriz bidimensional (2d). Así que declaremos el bucle interno.

# para j en rango (0, n-i-1):

La variable 'j' es como la 'i' del bucle exterior, pero esto representará el siguiente valor del valor actual del índice 'i', ya que hemos aplicado la lógica de 'n-i-1', por lo que el bucle será iterar hasta la posición de restar el valor de "i" del tamaño de la matriz junto con el valor '-1', esto conducirá a los dos índices adyacentes en la matriz.

Hemos accedido a dos valores en la matriz, y es hora de compararlos, ya que sabemos que la comparación se realiza a través de los soportes angulares. Necesitamos usar el soporte '>' para la clasificación ascendente.

Si arr [j]> arr [j + 1]:
arr [j], arr [j +1] = arr [j + 1], arr [j]

Si el valor en el lado izquierdo al que se accede primero es mayor que el valor a la derecha, a los que se accede más adelante, ambos valores se intercambian directamente sin usar ninguna participación del tercer lugar. En el otro caso, avance hacia la siguiente posición. Esta fue la principal función lógica del tipo de burbuja.

Salta fuera de los bucles. Después de eso, declaramos la matriz y la pasamos a la función a través de una llamada de función.

Bubblesort (arr).

Después de eso, la matriz ordenada se imprimirá. En la consola resultante, se mostrará el valor resultante.

Puede ver que la matriz de entrada contiene los valores aleatorios, mientras que, en la matriz resultante, todos los elementos se clasifican en orden ascendente.

Ejemplo 2

El ejemplo anterior trata de continuar todas las comparaciones posibles, incluso si toda la matriz ya está ordenada. Esto lleva a la extensión de tiempo de la ejecución a lo largo de la matriz. Entonces, para hacer el tiempo de ejecución limitado, usaremos una tercera variable. Aquí usamos una variable booleana para establecer el valor de la variable como verdadero si se produce el intercambio. De lo contrario, se considera falso.

Después de cada iteración, si no se produce intercambio debido al intercambio, el valor será falso. Se refiere a cuando todos los elementos en una matriz ya están ordenados, y no hay más requisitos para clasificarlos. Este fenómeno se usa fácilmente y puede reducir el tiempo de ejecución y beneficiarse de optimizar.

Dentro de la función de clasificación de burbujas, la longitud se ha declarado una variable. Una variable adicional intercambiada se declara como falsa inicialmente. Pero su valor cambia cada vez que se realiza el proceso de intercambio.

Intercambiado = falso

Dentro del bucle externo y interno, se produce la comparación entre los valores de los índices especificados; Si los valores deben intercambiarse, la variable intercambiada se convierte en 'verdadero' y los valores se intercambian con éxito.

Pero si no se intercambian dos valores, cuando los valores ya están dispuestos, entonces no se produce intercambio, por lo que la variable intercambiada sigue siendo falsa. Y luego ocurre el descanso. Este cheque se alcanza a través de una declaración IF.

Si se intercambia == falso

Romper

Este descanso será responsable de evitar que el ciclo ejecute más. Como en este ejemplo, la ruptura ocurrirá en el índice de 1,2 y 3.

Después de guardar el archivo, los valores de ejecución se pueden ver a través de la consola. Puede ver los valores resultantes que están dispuestos en orden ascendente.

Ejemplo 3

Este ejemplo sigue el mismo concepto que se explica en el segundo ejemplo utilizando el mismo booleano intercambiado con el uso de otra variable al momento de intercambiar los valores. Este es un valor temporal. Esta es una plantilla que almacena los valores temporalmente.

El mismo ejemplo anterior se usa aquí. Solo considere el procedimiento de intercambio aquí. El primer valor de índice se guarda en la variable 'temp' dentro de los bucles. Y ese espacio se llena con el valor al lado en la matriz con la que se compara el valor anterior. Y ese siguiente valor ahora se reemplaza con el valor presente en la temperatura. Esto se llama asignación indirecta de valores, y utiliza más pasos que la asignación directa de valores.

La variable intercambiada se declarará como verdadera en el caso de intercambio. Ejecutar el código para ver los resultados.

Conclusión

El artículo 'sort de burbujas' contiene una breve introducción a la metodología de clasificación a través del algoritmo. Se discute un proceso detallado de burbujas con un enfoque paso a paso. Se recomienda la herramienta Spyder para la implementación de programas relacionados con Python. Cada ejemplo elemental representa el uso de burbujas en el lenguaje de Python.