Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tri à bulles vers Tri cocktail

    7 février 2014 à 22:46:54

    Bonjour !

    Comment allez vous ?

    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

    • Partager sur Facebook
    • Partager sur Twitter

    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.
    • Editeur
    • Markdown