Sobes.tech
Junior — Middle

Quelle est la complexité temporelle de l'opération d'ajout d'un élément à la fin d'un tableau de type ArrayList?

sobes.tech IA

Réponse de l'IA

La complexité temporelle d'ajouter un élément à la fin d'un tableau de type ArrayList en moyenne est O(1) — temps amorti constant.

Cela se produit parce qu'ArrayList stocke les éléments dans un tableau de taille fixe. Lorsqu'on ajoute un élément, s'il y a de la place dans le tableau, l'élément est simplement placé dans la case suivante.

Cependant, si le tableau est plein, une opération d'extension est effectuée — un nouveau tableau de taille plus grande est créé, et tous les éléments sont copiés dedans. Cette opération prend O(n) temps, où n est le nombre d'éléments.

Exemple:

ArrayList<Integer> list = new ArrayList<>();
list.add(1); // O(1)
list.add(2); // O(1)
// Lorsqu'on atteint la capacité du tableau, une extension est effectuée — O(n)

Ainsi, la complexité moyenne d'ajout est — O(1), mais dans le pire cas — O(n).