import time
empleados = []
with open ("Aguascalientes.txt","r") as archivo:
next (archivo)
for linea in archivo:
datos = linea.strip().split("\t")
if len(datos) > 10:
empleado = {
"id": int(datos[0]),
"nombre": datos [3]+ "" + datos[4]+ "" + datos[5],
:"sueldo": float(datos[9])
}
empleados.append(empleado)
# Ordenacion por ID
empleados.sort(key=lambda x: x["id"])
print ("Datos guardados")
print ("Total de registros:", len(empleados))
#Busqueda secuencial
def busqueda_secuencial(lista, id_buscar):
condiciones=0
inicio= time.perf_counter()
for empleado in lista:
condiciones +=1
if empleado ["id"] == id_buscar:
fin = time.perf_counter()
return{
"encontrado": True,
"nombre": empleado["nombre"],
"sueldo": empleado["sueldo"],
"condiciones":condiciones,
"tiempo": fin - inicio
}
fin = time.perf_counter()
return {
"encontrado": false,
"condiciones":condiciones,
"tiempo": fin - inicio
}
#Busqueda binaria
def busqueda_binaria(lista,id_buscar):
izquierda =0
derecha = len(lista) - 1
condiciones = 0
inicio = time.perf_counter()
while izquierda <= derecha:
condiciones += 1
medio = (izquierda + derecha)// 2
if lista[medio]["id"] == id_buscar:
fin = time.perf_counter()
return {
"encontrado": True,
"nombre": lista[medio]["nombre"],
"sueldo": lista[medio]["sueldo"],
"condiciones":condiciones,
"tiempo": fin - inicio
}
elif lista [medio]["id"] < id_buscar:
izquierda = medio + 1
else:
derecha = medio -1
fin = time.perf_counter()
return {
"encontrado": False,
"condiciones": condiciones,
"tiempo": fin - inicio
}
#Programa:
while True:
print("\nBusqueda de empleados")
id_usuario = int(input("Ingrese un ID:"))
# Para la busqueda secuencial:
resultado_sec = busqueda_secuencial(empleados,id_usuario)
print("\nBusqueda secuencial")
if resultado_sec["encontrado"]:
print("nombre: ",resultado_sec["nombre"])
print("sueldo: ",resultado_sec["sueldo"])
else:
print("El empleado no se encontró")
print("Condiciones aplicadas", resultado_sec["condiciones"])
print("Tiempo", resultado_sec["tiempo"], "segundos")
# Para la busqueda binaria:
resultado_bin = busqueda_binaria(empeados,id_usuario)
print("\nBusqueda binaria")
if resultado_bin["encontrado"]:
print("nombre: ",resultado_bin["nombre"])
print("sueldo: ",resultado_bin["sueldo"])
else:
print("El empleado no se encontró")
print("Condiciones aplicadas", resultado_bin["condiciones"])
print("Tiempo", resultado_bin["tiempo"], "segundos")
continuar = input("\nDesea realizar otra búsqueda? SI / NO")
if continuar.lower() !="s":
break
To embed this program on your website, copy the following code and paste it into your website's HTML: