Il y a un bug dans votre code de tri bulle qui signifie qu'il ne sera pas trier certains (peut-être plus) répertorie correctement. Cela n'a rien à voir avec le type de données des valeurs dans la liste (il aura les mêmes problèmes avec des listes de nombres ou des listes de chaînes).
est ici code fixe:
def bubble(badList):
length = len(badList) - 1
unsorted = True
while unsorted:
unsorted = False # this was moved out of the for loop
for element in range(0,length):
if badList[element] > badList[element + 1]:
hold = badList[element + 1]
badList[element + 1] = badList[element]
badList[element] = hold
print badList # comment this out when you're done testing
unsorted = True # this was moved up from the else block
Il fonctionne aussi bien pour les nombres et les chaînes, comme indiqué ici:
lst = [12, 5, 13, 8, 9, 65]
>>> bubble(lst)
[5, 12, 13, 8, 9, 65]
[5, 12, 8, 13, 9, 65]
[5, 12, 8, 9, 13, 65]
[5, 8, 12, 9, 13, 65]
[5, 8, 9, 12, 13, 65]
>>> lst
[5, 8, 9, 12, 13, 65]
>>> lst = ['a', 'list', 'of', 'words', 'foo', 'bar', 'baz']
>>> bubble(lst)
['a', 'list', 'of', 'foo', 'words', 'bar', 'baz']
['a', 'list', 'of', 'foo', 'bar', 'words', 'baz']
['a', 'list', 'of', 'foo', 'bar', 'baz', 'words']
['a', 'list', 'foo', 'of', 'bar', 'baz', 'words']
['a', 'list', 'foo', 'bar', 'of', 'baz', 'words']
['a', 'list', 'foo', 'bar', 'baz', 'of', 'words']
['a', 'foo', 'list', 'bar', 'baz', 'of', 'words']
['a', 'foo', 'bar', 'list', 'baz', 'of', 'words']
['a', 'foo', 'bar', 'baz', 'list', 'of', 'words']
['a', 'bar', 'foo', 'baz', 'list', 'of', 'words']
['a', 'bar', 'baz', 'foo', 'list', 'of', 'words']
>>> lst
['a', 'bar', 'baz', 'foo', 'list', 'of', 'words']
Avez-vous pas essayé avec des cordes? Ça va marcher. –
Bonjour merci pour la réponse: D – user2833024
Pourriez-vous s'il vous plaît explane comment je le ferais? Merci – user2833024