Sobes.tech
Junior — Middle

Qual é a complexidade temporal da operação de inserir um elemento no início de uma ArrayList dinâmica?

sobes.tech IA

Resposta da IA

A inserção de um elemento no início de um array dinâmico (por exemplo, ArrayList em Java) tem uma complexidade de tempo de O(n), onde n é o número de elementos no array.

Isto deve-se ao fato de que, ao inserir no início, todos os elementos existentes precisam ser deslocados uma posição para a direita para abrir espaço para o novo elemento. O processo de copiar os elementos leva tempo linear.

Exemplo:

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

// Inserção no início
list.add(0, 0); // desloca todos os elementos para a direita

Assim, inserir no final costuma ser mais rápido (amortizado O(1)), enquanto no início é O(n).