estoy tratando de poner en práctica la búsqueda binaria en Python y haber escrito la siguiente manera. Sin embargo, no puedo detenerlo cada vez que needle_element es más grande que el elemento más grande de la matriz.binario algoritmo de búsqueda en Python
puede ayudar? Gracias.
def binary_search(array, needle_element):
mid = (len(array))/2
if not len(array):
raise "Error"
if needle_element == array[mid]:
return mid
elif needle_element > array[mid]:
return mid + binary_search(array[mid:],needle_element)
elif needle_element < array[mid]:
return binary_search(array[:mid],needle_element)
else:
raise "Error"
Intentaré evitar crear muchas copias parciales de la matriz, una d pase en un índice inferior y superior en su lugar. Entonces simplemente deténgase si es inferior> superior. –
Puede que quiera ver [binary-search-in-python] (http://stackoverflow.com/questions/212358/binary-search-in-python) – nawfal