Sobes.tech
Junior — Middle

Qual è la complessità temporale dell'operazione di ricerca di un elemento in una lista implementata tramite uno slice?

sobes.tech AI

Risposta dell'AI

In Go, uno slice è un array dinamico che memorizza gli elementi in un'area di memoria sequenziale. La ricerca di un elemento per valore in uno slice richiede di scorrere gli elementi, poiché lo slice non è indicizzato per valore.

Pertanto, la complessità temporale dell'operazione di ricerca di un elemento in uno slice è O(n), dove n è il numero di elementi nello slice.

Esempio di ricerca di un elemento:

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

Qui, nel peggiore dei casi, sarà necessario verificare tutti gli elementi.