Salut,

Envoyé par
Tamzoro
Que pensez-vous de mon code ?
Ben, essayez de vous relire:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| def fusion():
tableau1 = [1,3,5,2]
tableau2 = [4,6,8,7]
tableau3 = []
i = 0
j = 0
while i < (len(tableau1)) and j < (len(tableau2)):
if tableau1[i] < tableau2[j]:
tableau3.append(tableau1[i])
i += 1
else:
tableau3.append(tableau2[j])
j += 1
if j == (len(tableau2)):
print(tableau3)
return tris(tableau3)
def tris(tab):
for i in range(len(tab)):
for j in range(len(tab) - 1):
if tab[ j + 1 ] < tab[ j ]:
unautre = tab[ j ]
tab[ j ] = tab[ j + 1 ]
tab[ j + 1 ] = unautre
return tab
print(fusion()) |
moi, j'ai toujours les mêmes questions: si vous triez tableau3, pas la peine d'écrire une fonction "fusion" aussi compliquée, vous pouvez vous contenter de:
1 2 3 4 5 6 7 8 9 10 11 12
| def tris(tab):
for i in range(len(tab)):
for j in range(len(tab) - 1):
if tab[ j + 1 ] < tab[ j ]:
unautre = tab[ j ]
tab[ j ] = tab[ j + 1 ]
tab[ j + 1 ] = unautre
return tab
tableau1 = [1,3,5,2]
tableau2 = [4,6,8,7]
print(tris(tableau1 + tableau2)) |
Par contre, si vous voulez écrire une fonction fusion (et donner du sens au while...), il faut partir de tableau1 et tableau2 triés et écrire:
print(fusion(tris(tableau1), tris(tableau2)))
Sans oublier que lorsque la condition i < (len(tableau1)) and j < (len(tableau2)) devient fausse, seule une des deux listes aura été parcourue: il faut faire quelque chose pour ajouter les éléments restants de l'autre liste.
- W
Partager