Sobes.tech
Junior — Middle

Come si valuta la complessità temporale dell'operazione di ricerca di un elemento per valore in una sequenza di tipo slice?

sobes.tech AI

Risposta dell'AI

La complessità temporale di cercare un elemento per valore in un segmento (slice) in Go è O(n), dove n è il numero di elementi nel segmento.

Questo perché un segmento è una sequenza ordinata di elementi senza una struttura indicizzata per una ricerca rapida. Per trovare un elemento, è necessario attraversare il segmento sequenzialmente, confrontando ogni elemento con il valore cercato.

Esempio di ricerca di un elemento in un segmento:

func contains(slice []int, val int) bool {
    for _, item := range slice {
        if item == val {
            return true
        }
    }
    return false
}

Se si necessita di una ricerca più veloce, si devono usare strutture dati con accesso indicizzato, come una mappa.