Al terminar podrás
- Añadir, insertar y eliminar elementos mediante métodos de lista.
- Diferenciar sort() de sorted() y explicar cuándo usar cada uno.
- Comprender comparaciones e intercambios en bubble sort.
Vamos paso a paso
Las listas son mutables. append() añade al final, insert(posicion, valor) inserta en una posición, remove(valor) elimina la primera coincidencia y pop() elimina por índice y devuelve el elemento. Antes de eliminar o consultar, verifica que el elemento o índice exista.
sort() ordena la lista original y no devuelve una lista nueva; sorted(lista) crea otra secuencia ordenada sin modificar la fuente. Ambos pueden recibir reverse=True para invertir el orden. Elige sort() cuando quieras modificar la colección y sorted() cuando necesites conservarla.
Bubble sort es un algoritmo didáctico que compara elementos vecinos y los intercambia cuando están desordenados. En cada pasada completa, el mayor valor de la parte pendiente termina al final de esa parte. No es eficiente para colecciones grandes, pero ayuda a practicar índices y comparaciones.
Primero observa una sola pasada con [5, 2, 4]. Se compara 5 con 2; como 5 es mayor, se intercambian y la lista queda [2, 5, 4]. Después se compara 5 con 4 y queda [2, 4, 5]. El valor mayor ya llegó al final.
En el ejercicio, el bucle exterior repite las pasadas y el interior compara cada valor con el siguiente. range(len(numeros) - 1 - pasada) reduce el recorrido porque la parte final ya quedó ordenada. Usa indice + 1 solo mientras exista un vecino a la derecha.
EJEMPLO EN PYTHON
colores = ["azul", "rojo", "verde"]
colores.append("negro")
colores.insert(1, "blanco")
retirado = colores.pop()
colores.sort()
print(colores)
print(retirado)
# Una pasada de bubble sort
numeros = [5, 2, 4]
for indice in range(len(numeros) - 1):
if numeros[indice] > numeros[indice + 1]:
temporal = numeros[indice]
numeros[indice] = numeros[indice + 1]
numeros[indice + 1] = temporal
print(numeros)
# Bubble sort completo
numeros_completos = [5, 2, 4, 1]
for pasada in range(len(numeros_completos) - 1):
for indice in range(len(numeros_completos) - 1 - pasada):
if numeros_completos[indice] > numeros_completos[indice + 1]:
temporal = numeros_completos[indice]
numeros_completos[indice] = numeros_completos[indice + 1]
numeros_completos[indice + 1] = temporal
print(f"Pasada {pasada + 1}: {numeros_completos}")
print("Resultado:", numeros_completos)RESULTADO
['azul', 'blanco', 'rojo', 'verde'] negro [2, 4, 5] Pasada 1: [2, 4, 1, 5] Pasada 2: [2, 1, 4, 5] Pasada 3: [1, 2, 4, 5] Resultado: [1, 2, 4, 5]
¿Qué está pasando?
- append() añade negro al final de la lista.
- insert(1, ...) coloca blanco en la segunda posición.
- pop() retira y devuelve el último valor; sort() ordena los restantes.
- En la pasada guiada se compara 5 con 2; el intercambio deja [2, 5, 4].
- Después se compara 5 con 4 y queda [2, 4, 5]; el bucle exterior repetirá el recorrido en el ejercicio completo.
- El bucle exterior realiza como máximo n - 1 pasadas.
- El bucle interior se acorta con - pasada porque el mayor de la parte pendiente ya queda colocado al final en cada recorrido.
- El ejemplo completo ordena la lista usando dos bucles y un intercambio temporal; no necesita sort() ni sorted().
Errores que conviene evitar
- Esperar que sorted() modifique la lista original.
- Confundir pop(), que devuelve un elemento, con remove(), que busca un valor.
- Intercambiar dos valores sin guardar temporalmente uno de ellos.
- Intentar comparar con indice + 1 cuando ya no existe un vecino a la derecha.
- Repetir comparaciones sobre la parte que ya quedó ordenada al final.
- Usar sort() o sorted() en el ejercicio cuando se pide implementar Bubble Sort manualmente.
AHORA TE TOCA A TI
Ordenar con bubble sort
Completa el ordenamiento por burbuja para ordenar [5, 2, 4, 1] de menor a mayor y muestra la lista final. No uses sort() ni sorted().
PISTAS
- El bucle interior compara numeros[indice] con numeros[indice + 1].
- Intercambia solo cuando el valor de la izquierda sea mayor que el de la derecha.
- Guarda el primer valor en temporal antes de sobrescribirlo.
- La parte final ya ordenada se acorta en cada pasada mediante - pasada.
Tu espacio de trabajo
Cómo usar este laboratorio
- 01EscribeModifica el archivo main.py en el editor.
- 02EjecutaCorre tu programa o comprueba el ejercicio.
- 03ObservaRevisa la consola y, cuando corresponda, el gráfico.
Instrucciones de esta actividad
Completa el ordenamiento por burbuja para ordenar [5, 2, 4, 1] de menor a mayor y muestra la lista final. No uses sort() ni sorted().
Entorno de desarrollo
Laboratorio de Python
Teclas útiles en el móvil