PEP-huître

This commit is contained in:
Geoffrey Frogeye 2015-03-11 21:01:45 +01:00
parent e398faa3dc
commit 5a63207ef6

View file

@ -82,24 +82,26 @@ def tri_selection(l):
imin = select_min(l, i, n - 1) imin = select_min(l, i, n - 1)
l[i], l[imin] = l[imin], l[i] l[i], l[imin] = l[imin], l[i]
def tri_insertion_base(l, n): def tri_insertion_base(l, n):
""" """
list, int list, int
n est un indice de l tel que l[0:n] soit une liste triée. La fonction déplace l'élément de rang n de telle sorte que l[0:i+1] soit triée n est un indice de l tel que l[0:n] soit une liste triée. La fonction déplace l'élément de rang n de telle sorte que l[0:i+1] soit triée
CU: n est un entier < len(l) et l est une liste, dont les éléments sont comparables, triée jusqu'à l'indice n-1. CU: n est un entier < len(l) et l est une liste, dont les éléments sont comparables, triée jusqu'à l'indice n-1.
""" """
assert(type(n)==int and type(l)==list and n < len(l)) assert(type(n) == int and type(l) == list and n < len(l))
aux = l[n] aux = l[n]
k=n k = n
while k >= 1 and comp(l[k-1], aux)== 1: while k >= 1 and comp(l[k - 1], aux) == 1:
l[k] = l[k-1] l[k] = l[k - 1]
k -= 1 k -= 1
l[k] = aux l[k] = aux
def tri_insertion(l): def tri_insertion(l):
for i in range(1, len(l)): for i in range(1, len(l)):
tri_insertion_base(l, i) tri_insertion_base(l, i)
@ -183,7 +185,7 @@ partie("Analyse du tri par sélection")
question(1) question(1)
for i in range(2, 102): for i in range(2, 102):
print(i-1, " ", tri_et_compte(tri_selection, liste_croissante(i))[1], " ", tri_et_compte( print(i - 1, " ", tri_et_compte(tri_selection, liste_croissante(i))[1], " ", tri_et_compte(
tri_selection, liste_alea(i, 0, 500))[1], " ", tri_et_compte(tri_selection, liste_decroissante(i))[1]) tri_selection, liste_alea(i, 0, 500))[1], " ", tri_et_compte(tri_selection, liste_decroissante(i))[1])
question(2) question(2)
@ -193,7 +195,7 @@ partie("Analyse du tri par insertion")
question(1) question(1)
for i in range(2, 102): for i in range(2, 102):
print(i-1, " ", tri_et_compte(tri_insertion, liste_croissante(i))[1], " ", tri_et_compte( print(i - 1, " ", tri_et_compte(tri_insertion, liste_croissante(i))[1], " ", tri_et_compte(
tri_insertion, liste_alea(i, 0, 500))[1], " ", tri_et_compte(tri_insertion, liste_decroissante(i))[1]) tri_insertion, liste_alea(i, 0, 500))[1], " ", tri_et_compte(tri_insertion, liste_decroissante(i))[1])
section("Dans le meilleur des cas") section("Dans le meilleur des cas")