Mise en explication : Tu prends la liste [1, 2, 3, 4, 5], 5 éléments
Étape 1 :
Tu commence à 1, qui n'est pas NULL. Tu vas le tester avec 2, 3, 4, 5 -> 4 opérations
Étape 2 :
Tu prends le suivant (ligne 20), donc 2, qui n'est pas NULL. Tu vas le tester avec 3, 4, 5 -> 3 opérations
Étape 3 :
Tu prends le suivant (ligne 20), donc 3, qui n'est pas NULL. Tu vas le tester avec 4, 5 -> 2 opérations
Étape 4 :
Tu prends le suivant (ligne 20), donc 4, qui n'est pas NULL. Tu vas le tester avec 5 -> 1 opération
Étape 5 :
Tu prends le suivant (ligne 20), donc 5, qui n'est pas NULL. Tu vas le tester avec rien (ligne 9, tu ne rentres pas dans la 2ième boucle
while)
Étape 6 :
Tu prends le suivant (ligne 20), donc NULL. Ligne 6, tu sors de la 1iere boucle
while.
Donc c'est bien
[(n - 1) + (n - 2) + ... + 2 + 1] opérations
Et j'ai regardé wiki
pour sortir (n * (n - 1)) / 2 -> (5 * 4) / 2 = 10 opérations
Après c'est un maximum, parce que ta liste peut diminuer de taille - les éléments redondants vont être retirés/ détruits
Partager