Algorithme de tri

Résolu
limbergh Messages postés 669 Statut Membre -  
limbergh Messages postés 669 Statut Membre -
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

  1. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    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]
    1
  2. limbergh Messages postés 669 Statut Membre 140
     
    C'est du langage "C"
    0
  3. limbergh Messages postés 669 Statut Membre 140
     
    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?
    0
  4. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. limbergh Messages postés 669 Statut Membre 140
     
    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
    0
  7. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    ce moment T[itemp] = T[j] donc ça permet de metre la valeur de T[i-1] dans T[j]
    0
  8. limbergh Messages postés 669 Statut Membre 140
     
    je pense avoir compris mais à ton avis, peut-on écrire dans cet algorithmeT[i] à la place de T[itemp]
    0
  9. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    non tu peux metre T[j] a la place de T[itemp]
    0
  10. limbergh Messages postés 669 Statut Membre 140
     
    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
    0
  11. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    la boucle ça veut dire que j=i au debut mais ça evolue j n'est pas tout le temps egal a i
    0
  12. limbergh Messages postés 669 Statut Membre 140
     
    ok, encore merci pour tes explications
    0
  13. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    de rien content de tavoir aidé ;)

    si t'as plus de probleme n'oublie pas de metre resolu
    0
  14. limbergh Messages postés 669 Statut Membre 140
     
    non je n'oublie pas et je pense l'avoir fais
    0