Sobes.tech
Junior — Middle

Qual è la complessità temporale dell'operazione di aggiunta di un elemento a un array dinamico?

sobes.tech AI

Risposta dell'AI

L'aggiunta di un elemento a un array dinamico ha generalmente una complessità temporale ammortizzata di O(1).

Spiegazione:

  • Se c'è spazio libero nell'array, l'elemento viene aggiunto in tempo costante.
  • Se non c'è spazio, l'array assegna un nuovo blocco di memoria più grande (di solito il doppio), copia gli elementi vecchi e aggiunge il nuovo.

Anche se l'operazione di espansione richiede O(n), non avviene frequentemente, quindi la complessità media (ammortizzata) dell'aggiunta rimane O(1).

Esempio in Go con slice:

var arr []int
arr = append(arr, 10) // aggiunta di un elemento

append espanderà automaticamente il slice se necessario.