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).