tri par insertion, correction tri_et_compte
Note: il y a un truc qui merde dans la fonction de mr Bontoux (ie tri_selection)
This commit is contained in:
parent
9ca2bb8610
commit
9d00ab1384
|
@ -82,6 +82,24 @@ 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(l, n):
|
||||||
|
"""
|
||||||
|
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
|
||||||
|
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))
|
||||||
|
|
||||||
|
aux = l[n]
|
||||||
|
|
||||||
|
k=n
|
||||||
|
while k >= 1 and l[k-1] > aux:
|
||||||
|
l[k] = l[k-1]
|
||||||
|
k -= 1
|
||||||
|
|
||||||
|
l[k] = aux
|
||||||
|
|
||||||
partie("Travail à réaliser")
|
partie("Travail à réaliser")
|
||||||
|
|
||||||
section("Préliminaires")
|
section("Préliminaires")
|
||||||
|
@ -133,23 +151,28 @@ question(1)
|
||||||
|
|
||||||
compteur = 0
|
compteur = 0
|
||||||
|
|
||||||
|
tri_selection(liste_alea(100, -5000, 5000))
|
||||||
|
|
||||||
|
print(compteur, 'comparaisons')
|
||||||
|
|
||||||
question(2)
|
question(2)
|
||||||
|
|
||||||
|
|
||||||
def tri_et_compte(foo, l):
|
def tri_et_compte(foo, l):
|
||||||
"""
|
"""
|
||||||
Trie la liste l avec la fonction de triage foo passée en paramètre, renvoie la liste triée et le nombre de comparaisons effectuées
|
Trie la liste l avec la fonction de triage foo passée en paramètre, renvoie la liste triée et le nombre de comparaisons effectuées
|
||||||
str, list → (list, int)
|
str, list → (list, int)
|
||||||
CU: l est une liste
|
CU: l est une liste
|
||||||
"""
|
"""
|
||||||
|
|
||||||
assert(type(l) == list)
|
assert(type(l) == list)
|
||||||
|
|
||||||
global compteur
|
global compteur
|
||||||
|
|
||||||
compteur = 0
|
compteur = 0
|
||||||
|
foo(l)
|
||||||
|
|
||||||
return (foo(l), compteur)
|
return (l, compteur)
|
||||||
|
|
||||||
partie("Analyse du tri par sélection")
|
partie("Analyse du tri par sélection")
|
||||||
|
|
||||||
|
|
Reference in a new issue