Modification de l'algorithme de selection pour qu'il marche
D'un coté celui-ci est plus éloigné de celui du cours, d'un autre il en est plus proche.
This commit is contained in:
parent
5a63207ef6
commit
d6f079a4fc
|
@ -17,7 +17,7 @@ http://www.fil.univ-lille1.fr/~L1S2API/CoursTP/tp4_tri.html
|
||||||
__author__ = 'PREUD\'HOMME Geoffrey & BEAUSSART Jean-loup'
|
__author__ = 'PREUD\'HOMME Geoffrey & BEAUSSART Jean-loup'
|
||||||
__date_creation__ = 'Tue, 10 Mar 2015 10:26:41 +0100'
|
__date_creation__ = 'Tue, 10 Mar 2015 10:26:41 +0100'
|
||||||
|
|
||||||
from random import randint, shuffle
|
from random import randint
|
||||||
|
|
||||||
|
|
||||||
def partie(nom):
|
def partie(nom):
|
||||||
|
@ -60,13 +60,13 @@ def select_min(l, a, b):
|
||||||
list, int, int → int
|
list, int, int → int
|
||||||
Renvoie l'indicde d'un élément minimal de la tranche l[a:b]
|
Renvoie l'indicde d'un élément minimal de la tranche l[a:b]
|
||||||
CU : l est une liste de longueur n, d'éléments homogènes ordonnables, et a et b deux indices tels
|
CU : l est une liste de longueur n, d'éléments homogènes ordonnables, et a et b deux indices tels
|
||||||
que 0 ≤ a < b ≤ n
|
que 0 ≤ a < b < n
|
||||||
"""
|
"""
|
||||||
assert 0 <= a < b <= len(l)
|
assert 0 <= a < b <= len(l)
|
||||||
|
|
||||||
imin = a
|
imin = a
|
||||||
for i in range(a + 1, b):
|
for i in range(a + 1, b + 1):
|
||||||
if comp(l[i], imin) == -1:
|
if comp(l[i], l[imin]) == -1:
|
||||||
imin = i
|
imin = i
|
||||||
return imin
|
return imin
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ def tri_selection(l):
|
||||||
CU : l est une liste de longueur n, homogène, d’éléments ordonnables
|
CU : l est une liste de longueur n, homogène, d’éléments ordonnables
|
||||||
"""
|
"""
|
||||||
n = len(l)
|
n = len(l)
|
||||||
for i in range(n - 2):
|
for i in range(n - 1):
|
||||||
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]
|
||||||
|
|
||||||
|
|
Reference in a new issue