Python - Busqueda binaria

 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder