Difficulté à lire un algorithme tri à bulle

etudiant83 Messages postés 3 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
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.
Configuration: Windows 7

4 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    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
  2. etudiant83 Messages postés 3 Statut Membre
     
    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
  3. etudiant83 Messages postés 3 Statut Membre
     
    personne pour m'aider ?
    0
  4. KX Messages postés 19031 Statut Modérateur 3 020
     
    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