web-dev-qa-db-fra.com

Quelle est la complexité temporelle d'une liste pour définir la conversion?

J'ai remarqué le tableau de la complexité temporelle des opérations d'ensemble sur le site officiel python. Mais je veux juste savoir quelle est la complexité temporelle de la conversion d'une liste en ensemble, par exemple,

l = [1, 2, 3, 4, 5]
s = set(l)

Je sais en quelque sorte qu'il s'agit en fait d'une table de hachage, mais comment cela fonctionne-t-il exactement? Est-ce O(n) alors?

35
Xuechen Li

Oui. L'itération sur une liste est O(n) et l'ajout de chaque élément à l'ensemble de hachage est O(1), donc l'opération totale est O(n).

34
Mad Physicist