La ricerca dicotomica, conosciuta anche come ricerca binaria, è un algoritmo utilizzato per trovare rapidamente un valore in una lista ordinata. La ricerca dicotomica è molto efficiente rispetto ad altri metodi di ricerca, come la ricerca lineare, perché riduce drasticamente il numero di operazioni necessarie per trovare l'elemento desiderato.
L'idea di base della ricerca dicotomica è quella di dividere ripetutamente l'intervallo di ricerca a metà, confrontando l'elemento centrale con l'elemento che stiamo cercando. Se l'elemento centrale è uguale a quello cercato, abbiamo trovato il nostro elemento. Se invece l'elemento centrale è maggiore o minore del valore cercato, restringiamo la ricerca solo alla metà della lista in cui potrebbe trovare l'elemento. Questo processo continua finché non troviamo l'elemento o finché l'intervallo di ricerca non si riduce a zero.
La ricerca dicotomica è molto più veloce della ricerca lineare. In una lista di n elementi, la ricerca dicotomica richiede solo circa log₂(n) operazioni. Questo significa che con una lista di 1.000.000 di elementi, la ricerca dicotomica richiede al massimo solo circa 20 passaggi, mentre la ricerca lineare richiederebbe 1.000.000 di passaggi nella peggiore dei casi.
Un aspetto fondamentale della ricerca dicotomica è che funziona solo su liste ordinate. Se la lista non è ordinata, è necessario ordinarla prima di eseguire la ricerca dicotomica, il che potrebbe richiedere tempo aggiuntivo.
Se la lista viene modificata frequentemente (con inserimenti o cancellazioni), la ricerca dicotomica potrebbe non essere l'algoritmo migliore, poiché ogni modifica potrebbe richiedere il riordinamento della lista.
Autore: Francesco Congiusta