Vai al contenuto principale
← OlimpiApp Difficile

Informatica · Ricerca

Una ricerca binaria che può non terminare

Si considera la funzione

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

con a = [2, 3, 5, 7, 11, 13, 17, 19]. Per quanti interi $x$ con $1 \le x \le 20$ la chiamata cerca(a, x) termina?

La tua risposta

Vanno bene sia 3,14 sia 3.14.