Algorithme de tri

Résolu
Bonjour,
je ne comrend pas les deux dernières lignes d'un algorithme de tri (tri par selection directe),
si quelqu'un peut me l'expliquer ce serait impeccable.

for (i=imin+1;i<=imax; i++)
{
xtemp = T[i-1];
itemp=i-1;
for (j=i; j <=imax; j++)
if (T[j] < xtemp)
{
xtemp = T[j];
itemp = j;
}
T [itemp] = T [i-1];
T [i-1] = xtemp;
}

je ne comprend pas ces deux lignes ci...
T [itemp] = T [i-1];
T [i-1] = xtemp;
Configuration: Windows Vista
Firefox 2.0.0.11

13 réponses

  • Votes
  • Date
  • Date décroissante
  1. de rien content de tavoir aidé ;)

    si t'as plus de probleme n'oublie pas de metre resolu
    1. la boucle ça veut dire que j=i au debut mais ça evolue j n'est pas tout le temps egal a i
      1. si on peut mettre T[j]à la place de T[itemp], on peut mettre T[i] vu que dans la boucle "fo"r on dit que j=i...
        ou alors j'ai loupé un épisode dans l'algorithme...
        Si oui peux-tu me dire ou?

        Merci d'avanve
        1. je pense avoir compris mais à ton avis, peut-on écrire dans cet algorithmeT[i] à la place de T[itemp]
          1. ce moment T[itemp] = T[j] donc ça permet de metre la valeur de T[i-1] dans T[j]
            1. re,
              ok après le if on dit que
              T[j] va dans xtemp et j dans itemp
              ce que je comprend pas c'est ce que vient faire la le T [itemp]

              encore merci pour tes explications mype
              1. c'est pour faire la comparaison entre T[j] et T[i-1] ici if (T[j] < xtemp) comme xtemp vaut T[i-1] a ce moment
                1. salut,
                  au début del'algorithme on met
                  xtemp = T[i-1];
                  itemp=i-1;
                  on donne donc une valeur pour xtemp et itemp
                  ensuite on redonne
                  xtemp = T[j];
                  itemp = j;
                  pourquoi on donne deux valeur différentes à xtemp et itemp?
                  1. c'est pour echanger deux valeur

                    T [itemp] = T [i-1]; ça veut dire que tu met dans T[j] la valeur de T[i-1] parce que itemp = j

                    T [i-1] = xtemp; la tu met dans dans T[i-1] la valeur de T[j] avant la premiere modification parce que xtemp= T[j]