Sobes.tech
Junior — Middle

Quel est le niveau de complexité temporelle de l'opération d'ajout d'un élément à la fin d'un tableau à l'aide d'un slice?

sobes.tech IA

Réponse de l'IA

En Go, l'opération d'ajout d'un élément à la fin d'un slice (append) a une complexité temporelle amortie de O(1).

Explication :

  • Si le slice dispose d'une capacité suffisante (capacity), l'ajout d'un élément se fait simplement en écrivant à l'index suivant libre — c'est une opération en temps constant.

  • Si la capacité n'est pas suffisante, un nouveau tableau de taille plus grande est alloué, les anciens éléments sont copiés, puis le nouvel élément est ajouté — cette opération prend O(n), où n est la taille actuelle du slice.

Cependant, comme ces réallocations ne se produisent pas à chaque ajout mais seulement périodiquement, la complexité moyenne (amortie) de l'ajout reste O(1).