Tri à bulles en python 3.0 à partir d'un algorithme

Résolu
Bonjour,
voilà l'algorithme que j'ai à mettre en python :

Données : Une liste à trier notée L
Résultat : une liste L triée

Variables : k, temp : entier

début bloc principal
k <- -1 ;
tant que k < taille(L) faire
k <- k+1;
si L[k]>L[k+1] alors
temp <- L[k];
L[k] <- L[k+1];
L[k+1] <- temp;
k <- -1;

moi j'ai fait :
k=-1
while k < len(L):
k=(k+1)
if L[k] > L[k+1]:
temp=L[k]
L[k]=L[k+1]
L[k+1]=temp
k=-1

On doit juste présenter ça sous forme d'une fonction, mais ça me mets avec aptana qu'il y a un problème à " if L[k] > L[k+1]"

aidez-moi s'il vous plaît

2 réponses

  1. Bonjour youterk,
    Je pense,
    ....
    tant que k < taille(L) faire 
    est mauvais
    ....
    tant que k < taille(L-1) faire 
    est correct si le premier élément du tableau est 1
    ....
    tant que k < taille(L-2) faire 
    est correct si le premier élément du tableau est 0
    1. non l'algo est donné
    2. je ne peux donc pas le modifier :/
    3. On doit juste présenter ça sous forme d'une fonction, mais ça me mets avec aptana qu'il y a un problème à " if L[k] > L[k+1]"
      Admettons ce tablo de 6 éléments : t(0) = 2, t(1) = 1, t(2) = 3, t(3) = 4, t(4) = 5, t(5) = 6.
      k=0: t(0)>t(1) = VRAI, donc on permute.
      On recommence, puisque k=-1
      t(0) = 1, t(1) = 2, t(2) = 3, t(3) = 4, t(4) = 5, t(5) = 6. (tout est maintenant dans l'ordre pour aller vite )
      k=0: t(0)>t(1) = FAUX, on continue ...
      k=1: t(1)>t(2) = FAUX, on continue ...
      k=2: t(2)>t(3) = FAUX, on continue ...
      k=3: t(3)>t(4) = FAUX, on continue ...
      k=4: t(4)>t(5) = FAUX, on continue ...
      k=5: t(5)>t(6) = FAUX, on continue ... >>> t(6) n'existe pas !
      et k=5 est correct puisque plus petit que Len(tablo)
      As-tu compris je ce que je voulais dire ?
    4. oui en partie, merci de l'aide :)
    5. pourquoi doit-on mettre la variable k à -1 à la fin ? je ne comprend pas >_< k est bien le rang d'un nombre dans le tableau ? dans ton exemple Heliotte, k(o)=t(o)= 2 non ?