DS 2 (1h15) 
 
Lycée Buffon  2 / 6                                                        
!   x >= L[j-1]:  et  x  s’insère  entre  deux  éléments  inférieurs  et 
supérieurs, donc bien triée 
! soit jatteint 0 et x est placé en tout début de liste car inférieur à tous 
les éléments qui le précèdent. 
Donc la sous-liste L[0:i+2]est triée, donc Inv(i+1) vrai. 
• Terminaison :  Un boucle for s’arrête forcement, et la boucle while s’arrête également 
car j diminue à chaque passage,  et donc  va  forcément atteindre 0,  dans  le  pire  des 
cas. 
• Bonne  terminaison :  Les  itérations s’arrêtent pour i=n-1,  donc Inv(n-1) vrai,  soit  la 
sous-liste L[0:n] , c’est à dire la liste L est triée, CQFD. 
 
Question 4 : (3 pt) Soit n, le nombre d’éléments dans la liste L. Donner, en le démontrant, et 
en précisant à quelle forme de L cela correspond, la complexité algorithmique de la fonction 
tri_mystere(L) dans le meilleur et le pire des cas : 
Meilleur des cas :  
-  L est déjà triée 
-  Complexité (à démontrer):  
Prennons comme critère de calcul de la complexité, le nombre de comparaisons. 
Chaque test de la boucle while est faux,  donc il n’y  a globalement  qu’une  boucle for,  il y  a 
donc n-1 itérations, donc 2(n-1) comparaisons, la complexité algorithmique est donc en O(n). 
 
Pire des cas :  
-  L est triée par ordre décroissant 
-  Complexité (à démontrer):  
Chaque test de la boucle while est vrai, jusqu’à ce que j atteigne 0.   
Pour i= 1 : 1 passage dans les instructions de la boucle while (2 comparaisons) 
Pour i= 2 : 2 passages dans les instructions de la boucle while (4 comparaisons) 
… 
      Pour i = n-1 : n-1 passage dans les instructions de la boucle while (2(n-1) comparaisons) 
 
Donc le nombre de passage total, noté Nit , dans les instructions de la boucle while est de : 
𝑁!" =1+2+⋯+𝑛−1=𝑖
!!!
!!!
=(𝑛−1)𝑛
2 
Il y a donc (𝑛−1)𝑛 comparaisons, donc une complexité algorithmique en O(n2). 
 
 
 
 
Question 5 (question  de cours) (3 pt): Pour les trois algorithmes de tri suivants, donner la 
complexité temporelle pour les deux types de listes proposées.