Vai al contenuto principale
← OlimpiApp Facile

Informatica · Ricerca

Ricerca binaria che confronta elementi vicini

La funzione seguente riceve un array di interi in cui due elementi vicini sono sempre diversi.

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

Quale indice restituisce f([1, 4, 3, 5, 8, 6, 2, 7, 9, 5, 3])? (Gli indici partono da 0.)