Si ya sabés qué es un algoritmo pero todavía no entendés cómo funciona el ordenamiento por detrás, este post es para vos. Los algoritmos de ordenamiento en Python son uno de los temas que más aparecen en entrevistas técnicas y en ejercicios de práctica — no porque los uses todo el tiempo en el trabajo, sino porque entenderlos muestra cómo pensás como programador.
Vamos con los tres más importantes para empezar, con código real.
→ Si todavía estás conociendo los algoritmos desde cero, te recomiendo arrancar con 7 algoritmos infalibles que todo nuevo programador debería dominar.
Qué son los algoritmos de ordenamiento en Python
Un algoritmo de ordenamiento en Python es un procedimiento paso a paso para reorganizar los elementos de una lista en un orden determinado — generalmente de menor a mayor.
En Python podés ordenar una lista así:
python
numeros = [5, 2, 8, 1, 9]
print(sorted(numeros)) # [1, 2, 5, 8, 9]
Pero sorted() esconde todo lo que pasa por detrás. Entender los algoritmos de ordenamiento en Python te ayuda a comprender por qué algunas soluciones son más eficientes que otras — y eso es exactamente lo que evalúan en una entrevista.
Bubble Sort: el algoritmo de ordenamiento más simple de entender
Bubble sort compara elementos de a dos y los intercambia si están en el orden incorrecto. Repite ese proceso hasta que la lista queda ordenada. Se llama «bubble» porque los valores más grandes «suben» hacia el final en cada pasada.
python
def bubble_sort(lista):
n = len(lista)
for i in range(n):
for j in range(0, n - i - 1):
if lista[j] > lista[j + 1]:
lista[j], lista[j + 1] = lista[j + 1], lista[j]
return lista
numeros = [5, 2, 8, 1, 9]
print(bubble_sort(numeros)) # [1, 2, 5, 8, 9]
Cuándo usarlo: casi nunca en producción — es lento para listas grandes. Pero es el primero que tenés que entender porque la lógica es muy clara.
Complejidad: O(n²) en el peor caso.
Selection Sort en Python: elegir el mínimo una y otra vez
Selection sort busca el elemento más pequeño de la lista y lo pone en la primera posición. Después busca el siguiente más pequeño y lo pone en el segundo lugar. Y así hasta terminar.
python
def selection_sort(lista):
n = len(lista)
for i in range(n):
min_idx = i
for j in range(i + 1, n):
if lista[j] < lista[min_idx]:
min_idx = j
lista[i], lista[min_idx] = lista[min_idx], lista[i]
return lista
numeros = [5, 2, 8, 1, 9]
print(selection_sort(numeros)) # [1, 2, 5, 8, 9]
La diferencia con bubble sort: selection sort hace menos intercambios. Eso puede ser ventaja cuando mover elementos es costoso.
Complejidad: O(n²), pero con menos swaps que bubble sort.
Insertion Sort en Python: como ordenar cartas en la mano
Insertion sort toma cada elemento y lo inserta en la posición correcta dentro de la parte ya ordenada de la lista. Es exactamente lo que hacés cuando ordenás cartas.
python
def insertion_sort(lista):
for i in range(1, len(lista)):
clave = lista[i]
j = i - 1
while j >= 0 and lista[j] > clave:
lista[j + 1] = lista[j]
j -= 1
lista[j + 1] = clave
return lista
numeros = [5, 2, 8, 1, 9]
print(insertion_sort(numeros)) # [1, 2, 5, 8, 9]
Cuándo brilla: con listas pequeñas o casi ordenadas, insertion sort es más eficiente que bubble y selection.
Complejidad: O(n²) en el peor caso, O(n) en el mejor (lista ya ordenada).
Comparativa de algoritmos de ordenamiento en Python
| Algoritmo | Complejidad | Intercambios | Mejor para |
|---|---|---|---|
| Bubble Sort | O(n²) | Muchos | Aprender la lógica básica |
| Selection Sort | O(n²) | Pocos | Listas donde mover datos es costoso |
| Insertion Sort | O(n²) | Medios | Listas pequeñas o casi ordenadas |
En producción real, Python usa Timsort (combinación de merge sort e insertion sort) con complejidad O(n log n). Pero para entender por qué eso importa, primero tenés que entender estos tres.
Si querés profundizar en el análisis de eficiencia, leé también algoritmos básicos: fundamentos que todo principiante debe dominar.
Practicá esto en el campus
Si querés afianzar lo que aprendiste acá, en el campus de Academia MC tenés ejercicios y desafíos de código para practicar algoritmos de ordenamiento en Python desde cero — con corrección y comunidad. Es gratis. Entrá en campus.marianacasella.com y empezá hoy.





Deja una respuesta