1. Cos'è la Ricerca Binaria (Binary Search)?
La ricerca binaria è un algoritmo di ricerca ad alta efficienza che opera dimezzando ripetutamente lo spazio di ricerca all'interno di un array preventivamente ordinato. A ogni iterazione, l'algoritmo confronta il valore target con l'elemento situato al centro della porzione attiva di vettore: se coincidono, la ricerca ha successo; se il target è minore, si scarta la metà destra, altrimenti si scarta la metà sinistra.
Questo approccio si basa sulla strategia algoritmica del divide et impera, riducendo drasticamente il numero di confronti rispetto alla ricerca sequenziale lineare.
2. Proprietà e Complessità
- Pre-requisito fondamentale: La collezione di dati deve essere strettamente ordinata (crescente o decrescente).
- Complessità Temporale $\mathcal{O}(\log N)$: Poiché a ogni passo lo spazio di ricerca si dimezza, il numero massimo di passaggi necessari per un array di $N$ elementi è pari a $\log_2 N$.
- Complessità Spaziale $\mathcal{O}(1)$ (Iterativa) o $\mathcal{O}(\log N)$ (Ricorsiva): La versione iterativa non richiede memoria aggiuntiva oltre alle variabili di indice, mentre quella ricorsiva impegna lo stack di sistema.
3. Simulatore Interattivo: Esecuzione Ricerca Binaria
Inserisci un vettore di numeri interi ordinati in modo crescente e un valore target per verificare l'andamento dei puntatori e i passaggi logaritmici.