← 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?