Vai al contenuto principale
← OlimpiApp Facile

Informatica · Algoritmi

Confronti di una ricerca binaria a tre vie su array dato

Sia A l'array ordinato di 15 elementi (indici da 1 a 15):

A = [2, 5, 9, 14, 21, 30, 38, 47, 55, 63, 71, 80, 88, 94, 99]

La ricerca binaria a tre vie del target $t = 9$ esegue (div indica la divisione intera):

lo ← 1
hi ← 15
mentre $\text{lo} \le \text{hi}$:
  m ← (lo + hi) div 2
  confronta t con A[m]:
    se A[m] = t: trovato, termina
    se A[m] < t: lo ← m + 1
    se A[m] > t: hi ← m − 1

Ogni esame di A[m] (il confronto a tre vie) conta come un confronto. Quanti confronti vengono eseguiti in totale?