# Lista de estudiantes ordenada alfabéticamente
estudiantes = ["Ana", "Carlos", "Elena", "Jorge", "Luis", "María", "Sofía"]
# Función de búsqueda binaria para encontrar un estudiante
def busqueda_binaria(estudiantes, nombre_objetivo):
inicio = 0
fin = len(estudiantes) - 1
while inicio <= fin:
medio = (inicio + fin) // 2 # Calcula el índice medio
# Compara el nombre del medio con el nombre objetivo
if estudiantes[medio] == nombre_objetivo:
return f"{nombre_objetivo} encontrado en la posición {medio}."
elif estudiantes[medio] < nombre_objetivo:
inicio = medio + 1 # Busca en la mitad derecha
else:
fin = medio - 1 # Busca en la mitad izquierda
# Si no se encuentra el nombre, devuelve un mensaje adecuado
return f"{nombre_objetivo} no se encuentra en la lista."
# Ejemplo de uso: Buscar un nombre específico
resultado = busqueda_binaria(estudiantes, "Jorge")
print(resultado)
# Ejemplo de uso para un nombre que no está en la lista
resultado = busqueda_binaria(estudiantes, "Ricardo")
print(resultado)