Comparación de Arrays
Ejercicio 19: Comparación de Arrays
El objetivo es crear un algoritmo qué compare dos arrays paso a paso y determine si son iguales o no. Para ello debemos:
- Crear el pseudocódigo del algoritmo
- Implementarlo en Python
- Probar los 4 casos típicos:
- ✔ Son iguales
- ✔ Tienen diferente longitud
- ✔ Tienen diferentes valores
- ✔ Mismos valores pero en distinto orden
Pseudocódigo del algoritmo
Algoritmo compararArrays(lista1, lista2)
Si longitud(lista1) ≠ longitud(lista2)
devolver FALSO
Para i desde 0 hasta longitud(lista1) - 1
Si lista1[i] ≠ lista2[i]
devolver FALSO
devolver VERDADERO
FinAlgoritmo
implementación en Python
# Ejercicio 19 - Comparación de arrays
lista_a = [10, 20, 30]
lista_b = [10, 20, 30]
lista_c = [30, 20, 10] # Mismos elementos, orden diferente
lista_d = [10, 20] # Longitud diferente
print(f"A == B: {lista_a == lista_b}") # True
print(f"A == C: {lista_a == lista_c}") # False (el orden importa)
print(f"A == D: {lista_a == lista_d}") # False (la longitud importa)
# Algoritmo qué dice si dos arrays son iguales
def iguales(lista1, lista2):
# 1. Comprobar si tienen la misma longitud
if len(lista1) != len(lista2):
return False
# 2. Comparar elemento a elemento
for i in range(len(lista1)):
if lista1[i] != lista2[i]:
return False
# 3. Si no hay diferencias, son iguales
return True
# Pruebas de los 4 casos
print(f"A == B: {iguales(lista_a, lista_b)}") # True (iguales)
print(f"A == C: {iguales(lista_a, lista_c)}") # False (orden diferente)
print(f"A == D: {iguales(lista_a, lista_d)}") # False (longitud diferente)
print(f"C == B: {iguales(lista_c, lista_b)}") # False (mismo contenido, distinto orden)
Conclusiones
- Python distingue el orden de los elementos, por lo qué dos listas con el mismo contenido pueden no ser iguales.
- La longitud es clave: si no coincide, no hace falta seguir comparando.
- La Comparación elemento a elemento permite controlar casos especiales.
- Este algoritmo es equé a cómo Python compara listas internamente.