<-- Back to list of examples
# Sample Python/Pygame Programs
# Simpson College Computer Science
# http://programarcadegames.com/
# http://simpson.edu/computer-science/
# Leer un archivo desde disco y pasarlo a un array.
file = open("super_villains.txt")
listade_nombres = []
for linea in file:
    linea = linea.strip()
    listade_nombres.append(linea)
file.close()
# Búsqueda lineal
clave = "Morgiana the Shrew"
i = 0
while i < len(listade_nombres) and listade_nombres[i] != clave:
    i += 1
if i == len(listade_nombres):
    print( "El nombre no estaba en la lista." )
else:
    print( "El nombre se encuentra en la posición",i)
# Búsqueda binaria
clave = "Morgiana the Shrew";
limite_inferior = 0
limite_superior = len(listade_nombres)-1
encontrado = False
# Iteramos hasta encontrar el item, o donde se encuentran nuestros
# límites inferior/superior
while limite_inferior <= limite_superior and not encontrado:
    #Encontramos la posición intermedia
    posicion_intermedia = (limite_inferior + limite_superior) // 2
    # Decidimos si:
    # mover hacia arriba el límite inferior, o
    # mover hacia abajo el límite superior, o
    # hemos encontrado lo que buscábamos
    
    if listade_nombres[posicion_intermedia] < clave:
        limite_inferior = posicion_intermedia + 1
    elif listade_nombres[posicion_intermedia] > clave:
        limite_superior = posicion_intermedia - 1
    else:
        encontrado = True
if encontrado:
    print( "El nombre se encuentra en la posición", posicion_intermedia)
else:
    print( "El nombre no estaba en la lista." )