Logo NEXUS

NEXUS didattica

← Torna indietro
Informatica / Lezione Teorico-Pratica

Ricerca Binaria

Algoritmo efficiente di tipo divide et impera per la ricerca di elementi all'interno di vettori ordinati.

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à

// Implementazione iterativa della Ricerca Binaria in C++ #include <vector> #include <iostream> int ricercaBinariaIterativa(const std::vector<int>& v, int target) { int sx = 0; int dx = v.size() - 1; while (sx <= dx) { int mid = sx + (dx - sx) / 2; // Evita overflow di interi grandi if (v[mid] == target) { return mid; // Elemento trovato } if (v[mid] < target) { sx = mid + 1; // Cerca nella metà destra } else { dx = mid - 1; // Cerca nella metà sinistra } } return -1; // Elemento non presente }

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.

binary-search@nexus-core:~# Binary Search Simulator
> Configura il vettore ordinato e il target per avviare la simulazione divide et impera.