<-- 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." )