Sobes.tech
Middle

Come funziona la ricerca binaria in una lista ordinata?

sobes.tech AI

Risposta dell'AI

La ricerca binaria è un algoritmo per trovare un elemento in una lista ordinata con complessità logaritmica O(log n). Funziona secondo il principio di "dividi e conquista":

  1. Si determina l'elemento medio della lista.
  2. Se l'elemento cercato è uguale a quello medio, la ricerca termina.
  3. Se l'elemento cercato è minore di quello medio, la ricerca continua nella metà sinistra della lista.
  4. Se è maggiore, nella metà destra.

Il processo si ripete ricorsivamente o iterativamente finché l'elemento non viene trovato o l'intervallo di ricerca si esaurisce.

Esempio in Go:

func binarySearch(arr []int, target int) int {
    left, right := 0, len(arr)-1
    for left <= right {
        mid := left + (right-left)/2
        if arr[mid] == target {
            return mid
        } else if arr[mid] < target {
            left = mid + 1
        } else {
            right = mid - 1
        }
    }
    return -1 // elemento non trovato
}