Sono curioso della differenza di complessità spaziale tra map
e map!
in ruby.
Se ho i metodi:
def mult_by_two(arr)
arr.map {|i| i * 2 }
end
def mult_by_two!(arr)
arr.map! {|i| i * 2 }
end
Sebbene non esista un'assegnazione esplicita nel primo metodo, raccoglie implicitamente il risultato di map
da qualche parte e non funziona sul posto come il secondo metodo.
Sarebbe corretto dire che il primo ha O (n) complessità dello spazio ausiliario mentre il secondo è O (1)? Come dovrei rappresentarli quando osservo la complessità dello spazio ausiliario di un metodo?