Tri a bulle

Résolu
AngiePintat Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
 lili -
Bonjour,
j'ai besoin d'aide.
Je n'arrive pas à réaliser mon programme python qui consiste à trier une liste grâce à la méthode du tri a bulle avec détection si la liste est déjà triée. Il permet aussi de compter le nombre de permutations et de comparaisons entre deux éléments consécutifs. Il est indiqué que si aucune permutation n'est réalisée il ne faut pas afficher la liste.
Je n'arrive pas à modifier mon programme pour qu'il fonctionne correctement.
Quelqu'un aurait la solution?
(je pense que c'est au niveau du nombre de comparaisons qu'il a un problème.)
Merci!
A voir également:

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
as-tu tenu compte de la ligne 14?
peux-tu partager du texte, et pas des images?
tiens compte de ceci: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
AngiePintat Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
bonsoir,
oui j'ai tenu compte de la ligne 14.
j'ai donc essayé de créer une variable booléenne "triée" initialisée à False qui définirait si la liste est détectée triée ou non. De cette manière:

triee=False
borne=len(liste)
while triee!=False:
for i in range(1,borne-1):
for j in range(0, borne-i):
if liste[j+1] < liste[j]:
triee=False
inf=liste[j+1]
liste[j+1]=liste[j]
liste[j]=inf
nb_permutations+=1
nb_comparaisons+=1
borne-=1
print(liste)
else:
triee=True
nb_comparaisons+=1
borne-=1

mais je n'obtiens toujours pas le bon résultat.
le programme qui me donne le meilleur taux de réussite reste celui-ci:

nb_comparaisons = 0 # nombre de comparaisons sur les éléments de la liste
nb_permutations = 0 # nombre de permutations sur les éléments de la liste

for i in range(1,len(liste)):
for j in range(0, len(liste)-i):
if liste[j+1] < liste[j]:
inf=liste[j+1]
liste[j+1]=liste[j]
liste[j]=inf
nb_permutations+=1
nb_comparaisons+=1
else:
nb_comparaisons+=1
print(liste)

donc je pense qu'il faut que je garde ce squelette...
0
lili
 
ptdrr toi aussi t'es à la prépa des inps et t'est en galère ?
0