Busqueda binaria
Publicado por armando (1 intervención) el 17/10/2020 22:37:29
cuando no encuentra el valor, me da los valores cercanos, si el valor está fuera del rango de la lista por debajo no hay problema, el problema es cuando rebasa el valor máximo, cómo puedo dar los dos valores más cercanos por debajo?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import numpy as np
Lista =np.random.randint(0,10,5)
Listo=sorted(Lista)
def BusquedaBinaria (x, Lista, original, pI=0):
m=int(len(Lista)/2)
if (m==0):
if (len(Lista)==0):
print("nose encontró" + str (x)+ "pero encontré a "+str(original[m+pI]))
else:
if (x==Lista[m]):
print("se encontró "+str(x)+"en la posición" +str (m+pI))
else:
print("no se encontró"+str(x)+"pero encontré a" +str (original[m+pI+1]))
else:
if (x==Lista[m]):
print ("se encontró"+str(x)+"en la posición"+str(m+pI))
else:
if (x>Lista[m]):
BusquedaBinaria(x, Lista[m: ], original, m+pI)
else:
BusquedaBinaria(x, Lista[ :m], original, pI)
BusquedaBinaria(7, Lista, Lista)
Valora esta pregunta


0