Junior
Come funziona l'algoritmo di ricerca binaria?
sobes.tech AI
Risposta dell'AI
La ricerca binaria funziona analizzando un array ordinato, dividendo successivamente l'intervallo di ricerca a metà.
- Inizializzazione: Si definiscono il limite sinistro e destro dell'intervallo di ricerca (solitamente l'inizio e la fine dell'array).
- Confronto: Si calcola l'indice del mezzo dell'intervallo. Il valore in quell'indice viene confrontato con l'elemento cercato.
- Riduzione dell'intervallo:
- Se il valore al centro corrisponde a quello cercato, l'elemento è stato trovato.
- Se il valore al centro è maggiore di quello cercato, la ricerca continua nella metà sinistra dell'intervallo. Il limite destro si sposta a mezzo - 1.
- Se il valore al centro è minore di quello cercato, la ricerca continua nella metà destra dell'intervallo. Il limite sinistro si sposta a mezzo + 1.
- Ripetizione: I passaggi 2 e 3 vengono ripetuti fino a trovare l'elemento o l'intervallo di ricerca diventa vuoto.
La complessità dell'algoritmo è O(log n), molto più efficiente della ricerca lineare per array di grandi dimensioni.
Esempio di implementazione in Python:
def binary_search(arr, target):
"""
Implementazione della ricerca binaria.
Prende un array ordinato e il valore cercato.
Restituisce l'indice dell'elemento o -1 se non trovato.
"""
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2 # Calcolo dell'indice medio
mid_val = arr[mid] # Ottieni il valore al centro
if mid_val == target:
return mid # Elemento trovato
elif mid_val < target:
left = mid + 1 # Ricerca a destra
else: # mid_val > target
right = mid - 1 # Ricerca a sinistra
return -1 # Elemento non trovato