logo

Programa Python para clasificación de burbujas

Bubble Sort es el algoritmo de clasificación más simple que funciona intercambiando repetidamente los elementos adyacentes si están en el orden incorrecto.

Programa Python para clasificación de burbujas

El proporcionado Pitón El código implementa el algoritmo Bubble Sort, que ordena una matriz comparando repetidamente elementos adyacentes e intercambiándolos si están en el orden incorrecto. El algoritmo recorre la matriz varias veces y cada pasada empuja el elemento sin clasificar más grande a su posición correcta al final. El código incluye una optimización: si no se realizan cambios durante una pasada, la matriz ya está ordenada y el proceso de clasificación se detiene. El ejemplo inicializa una matriz, aplica la función bubbleSort para ordenarla e imprime la matriz ordenada. Después de ordenar, el resultado es: [11, 12, 22, 25, 34, 64, 90], lo que indica orden ascendente.

Python3
# Python program for implementation of Bubble Sort def bubbleSort(arr): n = len(arr) # optimize code, so if the array is already sorted, it doesn't need # to go through the entire process # Traverse through all array elements for i in range(n-1): # range(n) also work but outer loop will # repeat one time more than needed. # Last i elements are already in place swapped = False for j in range(0, n-i-1): # traverse the array from 0 to n-i-1 # Swap if the element found is greater # than the next element if arr[j]>arr[j + 1]: swapped = True arr[j], arr[j + 1] = arr[j + 1], arr[j] si no se swap: # si no hemos necesitado hacer un solo swap , # podemos simplemente salir del bucle principal. return # Código del controlador para probar arriba arr = [64, 34, 25, 12, 22, 11, 90] bubbleSort(arr) print('La matriz ordenada es:') para i en el rango(len(arr)): print('% d' % arreglo[i], end=' ')>

Producción
Sorted array is: 11 12 22 25 34 64 90>

Complejidad del tiempo : En2).
Espacio Auxiliar :O(1).



Consulte el artículo completo sobre Ordenamiento de burbuja ¡para más detalles!

Python3
def bubblesort(elements): # Looping from size of array from last index[-1] to index [0] for n in range(len(elements)-1, 0, -1): swapped = False for i in range(n): if elements[i]>elementos[i + 1]: intercambiado = Verdadero # intercambiando datos si el elemento es menor que el siguiente elemento en la matriz elementos[i], elementos[i + 1] = elementos[i + 1], elementos[i] si no se intercambian : # salir de la función si no hicimos un solo intercambio # lo que significa que la matriz ya está ordenada. elementos devueltos = [39, 12, 18, 85, 72, 10, 2, 18] print('La lista sin ordenar es,') print(elementos) bubblesort(elementos) print('La matriz ordenada es,') imprimir(elementos)>

Producción
Unsorted list is, [39, 12, 18, 85, 72, 10, 2, 18] Sorted Array is, [2, 10, 12, 18, 18, 39, 72, 85]>

Complejidad del tiempo : En2). Sin embargo, en la práctica, esta versión optimizada puede llevar menos tiempo, ya que cuando se ordena la matriz, la función regresará.
Espacio Auxiliar :O(1).