Algorithme de recherche binaire en python

Je suis en train de mettre en œuvre les binaires de recherche en python et de l'avoir écrit comme suit. Cependant, je ne peux pas le faire arrêter à chaque fois que needle_element est plus grand que le plus grand élément dans le tableau.

Pouvez-vous aider? Merci.

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"

source d'informationauteur AbdulFattah Popoola | 2012-02-29