Sobes.tech
Junior

Jaká je nejhorší doba běhu metody add() pro ArrayList?

sobes.tech AI

Odpověď od AI

Amortizovaný stálý čas O(1).

Ve většině případů se add() provádí v konstantním čase, protože nový prvek je jednoduše přidán na konec existujícího vnitřního pole.

Nejhorší případ nastává, když je dosažena kapacita vnitřního pole. V tomto případě ArrayList vytvoří nové větší pole (obvykle 1,5krát větší než současné), zkopíruje všechny prvky ze starého pole do nového a poté přidá nový prvek. Tato kopírovací operace trvá čas úměrný aktuálnímu počtu prvků (N), což vede k časové složitosti O(N).

Nicméně, protože takové změny velikosti se dějí zřídka a jsou rozloženy přes mnoho volání add(), průměrný čas provedení add() (amortizovaný) zůstává konstantní.