Sto cercando di implementare la ricerca binaria in Python e hanno scritto come segue. Tuttavia, non posso fermarlo quando needle_element è più grande dell'elemento più grande dell'array.binario algoritmo di ricerca in python
Potete essere d'aiuto? Grazie.
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"
Vorrei provare a evitare di creare molte copie parziali dell'array, un d passare invece in un indice inferiore e superiore. Quindi ti fermi semplicemente se inferiore> superiore. –
Potrebbe voler vedere [binary-search-in-python] (http://stackoverflow.com/questions/212358/binary-search-in-python) – nawfal