Vai al contenuto principale

Informatica · Ricerca

Iterazioni totali su tutti i valori presenti

La funzione seguente viene chiamata sull'array a dei 20 interi da 0 a 19 in ordine (cioè a[i] = i), una volta per ciascuno dei 20 valori presenti.

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

Quanti giri del ciclo while vengono eseguiti in tutto, sommando le 20 chiamate?

La tua risposta

Vanno bene sia 3,14 sia 3.14.