Comparación de Arrays

Publicado por pjimpin1207

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.