Difficulté à lire un algorithme tri à bulle

Fermé
etudiant83 Messages postés 3 Date d'inscription vendredi 18 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009 - 20 déc. 2009 à 16:07
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 22 déc. 2009 à 14:06
Bonjour à tous,

S'il vous plait, quelqu'un pourrait il m'expliquer comment lire l'algorithme de tri à bulle suivant (c'est mon prof qui me l'a donné) :

par exemple j'ai le tableau suivant et je veux classer les valeurs par ordre croissant :

tableau T1
4 1 2 3 6 5

Algorithme Tri à Bulle :

VAR
T1 : Tableau (1...6) d'entiers;
i, j, temp : entiers;

DEBUT

Pour i de 6 à 1 pas de -1
j<-- 1
Tant Que j < i faire
Si T1(j) > T1(j+1) alors
temp <-- T1(j)
T1(j) <--T1(j+1)
T1(j+1) <--temp
FinSi
j <-- j+1
Fin Tant Que
Fin Pour
Fin


en fait mon problème c'est que je comprend le but de cet algorithme qui consiste à comparer les valeurs de chaque cases adjacente et de les inverser si besoin.
Ce que je ne comprend pas c'est la lecture de l'algorithme, savoir quels nombre de mon tableau est représenté par les variables i, j et temp.
bref, quelqu'un pourrait il m'expliquer en me faisant par exemple un copier coller de cet algorithme puis en notant en face de chaque ligne de l'algorithme une phrase qui précise dans un langage clair ce que chaque ligne signifie.

je remercie infiniment ceux/celles qui voudront bien prendre de leur temps pour vouloir m'expliquer.
A voir également:

4 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
20 déc. 2009 à 16:41
Normalement pour ce genre de problème, on commence par un papier, un crayon et une gomme !
Pour comprendre le principe voici une petite vidéo : Bubble Sort

Après avoir compris ce qui se passe sur la vidéo, je suis sûr que tu verras un peu mieux ce qui se passe dans ton tableau...
0
etudiant83 Messages postés 3 Date d'inscription vendredi 18 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
20 déc. 2009 à 18:07
merci pour ta réponse et pour le lien KX. Mais comme je l'ai dit dans mon premier message, j'ai compris le principe du tri à bulle qui consiste à comparer successivement chaque valeur avec la case adjacente puis de les intervertir. ce que je n'ai pas compris c'est la manière de retranscrire ça en algorithme et la façon de lire celui que mon prof m'a donné.
0
etudiant83 Messages postés 3 Date d'inscription vendredi 18 décembre 2009 Statut Membre Dernière intervention 22 décembre 2009
22 déc. 2009 à 13:46
personne pour m'aider ?
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
22 déc. 2009 à 14:06
VAR
T1 : Tableau (1...6) d'entiers; // le tableau qui contient les données
i, j, temp : entiers; // i numéro de la case de fin à atteindre par le max
// j numéro de case où se trouve le max courant
DEBUT
Pour i de 6 à 1 pas de -1 // on commence par i=6, on veut le plus grand max
j<-- 1 // j=1, car la case 1 contient le max des 1 premières cases
Tant Que j < i faire // tant qu'on a pas parcouru tous les j susceptibles de remplir i
Si T1(j) > T1(j+1) alors // si on a nombre plus grand avant qui on précède un autre alors on les permute
temp <-- T1(j) // début de la permutation, on sauvegarde T1(j)
T1(j) <--T1(j+1) // suite de la permutation, on écrase T1(j) par la valeur T1(j+1)
T1(j+1) <--temp // fin de la permutation, on écrase T1(j+1) avec la valeur sauvegardée de l'ancien T1(j)
FinSi // on a terminé la permutation, on est sûr que le max des j+1 premiers éléments est en T(j+1)
j <-- j+1 // on incrémente j pour considérer un ensemble plus grand jusqu'à atteinde j=i
Fin Tant Que // fin de la boucle, j=i, on est sûr que le max des i éléments est en t1(i)
Fin Pour // on décrémente i, pour calculer le max des i-1 éléments, au delà de la case i, le tableau est déjà trié
Fin // i=1, c'est terminé, tous le tableau est trié
0