Le 08 janvier 2018 à 01:30:10 Hola-Chica-3 a écrit :
Je pense que c'est en n^2 si tous les mots (ou tableaux) composants x ont une taille différentes.
Dans ce cas là, quand il ajoute dans le dict il va devoir checker si la taille (la clé) n'est pas déjà dans le dict; vu que ca ne sera jamais le cas, il chercheras parmi toutes les j entrées à ce moment là et rajouteras la nouvelle clé à la fin du dict. Tu as n mots donc ca fera en gros n^2: http://www.wolframalpha.com/input/?i=sum(i,i%3D0,i%3Dn)
C'est pas exactement comme cela que fonctionne les dictionnaires en Python (généralement appelés HashMap dans les autres langages). 
Quand on ajoute une entrée à un dictionnaire, on ne check pas toutes les clés existantes, ça serait beaucoup trop long. 
On va juste calculer un "empreinte" (hash) de l'objet, cette empreinte est en fait un nombre, et tu vas regarder ce qui se situe dans ton dictionnaire à l'index de ce nombre. En interne, ton dictionnaire fonctionne en fait comme un tableau avec beaucoup de cases vides qui sont remplies quand tu ajoutes une entrée.
Le pire des cas survient lorsque tu veux ajouter plusieurs objets qui ont la même empreinte. Tu vas regarder qu'est-ce qui ce situe dans ton tableau à l'endroit indiqué, mais tu vas remarquer qu'il y a déjà un objet de stocké, mais qu'il est différent. Donc tu vas devoir trouvé un autre emplacement, et ainsi de suite, ce qui peut causer une insertion en O(n) dans le pire des cas. Et donc si tu ajoutes n objets, ça devient O(n²) dans le pire des cas. 
Message édité le 08 janvier 2018 à 01:38:14 par Blaff12