Introducción a los Algoritmos de Ordenamiento en Python

Al aprender algoritmos, es esencial entender no solo cómo funcionan, sino también cuán eficientes son en términos de complejidad temporal. En este artículo, compararemos dos algoritmos de ordenamiento clásicos: Bubble Sort y Quick Sort, y visualizaremos su rendimiento usando Python.

1. Bubble Sort

Bubble Sort es un algoritmo simple que recorre repetidamente la lista, compara elementos adyacentes y los intercambia si están en el orden incorrecto. Este proceso continúa hasta que la lista esté ordenada.

Implementación en Python:

def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
    return arr

bubble_sort.gif

2. Quick Sort

Quick Sort es un algoritmo de ordenamiento más eficiente que utiliza un enfoque de divide y vencerás. Elige un elemento pivote, particiona el array en subarrays y los ordena recursivamente.

Implementación en Python:

def quick_sort(arr):
	if len(arr) <= 1:
		return arr
	else:
		pivot = arr[len(arr) // 2]
		left = [x for x in arr if x < pivot]
		middle = [x for x in arr if x == pivot]
		right = [x for x in arr if x > pivot]
		return quick_sort(left) + middle + quick_sort(right)

quick_sort.gif