En fait j'ai réussi à programme le tri à bulles en python :
print "Python Program to sort the numbers using Bubble Sort"
arrNumbers = []
i = 0
j = 0
n = 0
a = 0
sum = 0
temp = 0
print "Total Numbers:",
n = input()
for i in range (0, n):
print "Enter", i + 1, "Number: ",
a = input()
arrNumbers.append(a)
for i in range (1, n):
for j in range (0, n - i):
if( arrNumbers[j] > arrNumbers[j + 1]):
temp = arrNumbers[j]
arrNumbers[j] = arrNumbers[j + 1]
arrNumbers[j + 1] = temp
print "After iteration: ", i
for k in range (0, n):
print arrNumbers[k],
print "/*** ", i + 1, "biggest number(s) is(are) pushed to the end of the array***/"
print "The sorted array is: ",
for i in range (0, n):
print arrNumbers[i],
Je voudrai passer de ce code vers le tri cocktail donc j'ai fait ça :
print "Python Program to sort the numbers using Bubble Sort"
arrNumbers = []
i = 0
j = 0
n = 0
a = 0
sum = 0
temp = 0
print "Total Numbers:",
n = input()
for i in range (0, n):
print "Enter", i + 1, "Number: ",
a = input()
arrNumbers.append(a)
for i in range (1, n):
for j in range (0, n - i):
if( arrNumbers[j] > arrNumbers[j + 1]):
temp = arrNumbers[j]
arrNumbers[j] = arrNumbers[j + 1]
arrNumbers[j + 1] = temp
for j in range (n - i, 0):
if( arrNumbers[j] < arrNumbers[j + 1]):
temp = arrNumbers[j]
arrNumbers[j] = arrNumbers[j + 1]
arrNumbers[j + 1] = temp
print "After iteration: ", i
for k in range (0, n):
print arrNumbers[k],
print "/*** ", i + 1, "biggest number(s) is(are) pushed to the end of the array***/"
print "The sorted array is: ",
for i in range (0, n):
print arrNumbers[i],
ligne 24 à 28 modifié
Résultat : juste le tri à bulles fonctionne mais pas le tri à cocktail c'est à dire les échanges 0 à n-i ok et l'inverse de n-i à 0 pas du tout.
Merci beaucoup par avance pour votre aide.
- Edité par 3scrng 7 février 2014 à 22:52:06
Tri à bulles vers Tri cocktail
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.