Bubble Sort
El algoritmo de ordenamiento Bubble Sort compara de manera iterativa los elementos adyacentes para decidir si deben intercambiarse de posición, de tal manera que, al finalizar, todos los elementos de la lista estarán en su posición adecuada según el criterio de ordenamiento utilizado.
Los pasos del algoritmo se pueden definir de una manera similar a la siguiente:
- Recorrer la lista comparando cada par de elementos adyacentes.
- Si un elemento es mayor que el siguiente (o menor, según el criterio), intercambiarlos.
- Repetir hasta que no haya más intercambios en una pasada completa.
- La lista estará ordenada cuando no se realicen más intercambios.
Este algoritmo tiene una complejidad de O(n^2)
, ya que en el peor de los casos requiere realizar n
pasadas sobre la lista, con dos iteraciones anidadas, para ordenar y verificar que no queden elementos desordenados.
En el caso de que la lista ya esté ordenada, el algoritmo solo realiza una única pasada para confirmar que los elementos están en su posición correcta.
def bubble(nums):
cambio = True
n = len(nums)
while cambio:
cambio = False
for i in range(1, n):
if nums[i - 1] > nums[i]:
nums[i - 1], nums[i] = nums[i], nums[i - 1]
cambio = True
n -= 1
return nums
Este ejemplo implementa Bubble Sort de menor a mayor en una lista de números.
Recursos
- Imagen de aqui