Vai al contenuto principale

Informatica · Ricerca

Ricerca binaria su un array non ordinato

La funzione seguente viene usata per errore sull'array non ordinato a = [3, 9, 1, 12, 7, 5, 15, 10, 14].

def cerca(a, x):
    lo, hi = 0, len(a) - 1
    while lo <= hi:
        mid = (lo + hi) // 2
        if a[mid] == x:
            return True
        elif a[mid] < x:
            lo = mid + 1
        else:
            hi = mid - 1
    return False

La funzione viene chiamata una volta per ciascuno dei 9 valori contenuti in a. In quante chiamate restituisce True?

La tua risposta

Vanno bene sia 3,14 sia 3.14.