Dans le pire des cas

This commit is contained in:
Geoffrey Frogeye 2015-03-12 19:58:53 +01:00
parent dd9680443f
commit 77a37e7ffb

View file

@ -202,7 +202,7 @@ def tri_et_compte(trieur, l):
global compteur global compteur
compteur = 0 compteur = 0
ltrie = trieur(l[:]) # On fait une copie l ltrie = trieur(l[:]) # On fait une copie l
return (ltrie, compteur) return (ltrie, compteur)
@ -263,11 +263,12 @@ print("Le meilleur des cas est lorsque la liste est déjà triée.")
question(2) question(2)
print("Résultat théorique établi : c_{tri-insert}(n)=n-1")
tableau = [['i', 'coût comtpé', 'coût théor.', 'fidèle']] tableau = [['i', 'coût comtpé', 'coût théor.', 'fidèle']]
tousFideles = True tousFideles = True
for nb in range(1, 101): for nb in range(1, 101):
c_compte = tri_et_compte(tri_insertion, liste_croissante(nb))[1] c_compte = tri_et_compte(tri_insertion, liste_croissante(nb))[1]
c_theor = nb-1 c_theor = nb - 1
fidele = c_compte == c_theor fidele = c_compte == c_theor
if not fidele: if not fidele:
tousFideles = False tousFideles = False
@ -280,8 +281,24 @@ section("Dans le pire des cas")
question(1) question(1)
print("Le pire des cas est lorsque la liste est triée dans l'ordre inverse.")
question(2) question(2)
print("Résultat théorique établi : c_{tri-insert}(n)=n(n-1)/2")
tableau = [tableau[0]]
tousFideles = True
for nb in range(1, 101):
c_compte = tri_et_compte(tri_insertion, liste_decroissante(nb))[1]
c_theor = nb * (nb - 1) // 2
fidele = c_compte == c_theor
if not fidele:
tousFideles = False
tableau.append([nb, c_compte, c_theor, fidele])
afficher_tableau(tableau)
print("Les résultats comptés {} tous fidèles aux résultats théoriques."
.format("sont" if tousFideles else "ne sont pas"))
section("En moyenne") section("En moyenne")
question(1) question(1)