Sobes.tech
Junior — Middle

Jaká je časová složitost operace vložení prvku na začátek dynamického pole ArrayList?

sobes.tech AI

Odpověď od AI

Vložení prvku na začátek dynamického pole (například ArrayList v Javě) má časovou složitost O(n), kde n je počet prvků v poli.

To je způsobeno tím, že při vkládání na začátek je třeba posunout všechny stávající prvky o jednu pozici doprava, aby se uvolnilo místo pro nový prvek. Samotný proces kopírování prvků trvá lineární čas.

Příklad:

ArrayList<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);

// Vložení na začátek
list.add(0, 0); // posune všechny prvky doprava

Proto je vložení na konec obvykle rychlejší (amortizovaně O(1)), zatímco na začátek je O(n).