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;
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
-
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] -
C'est du langage "C"
-
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? -
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
-
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 -
ce moment T[itemp] = T[j] donc ça permet de metre la valeur de T[i-1] dans T[j]
-
je pense avoir compris mais à ton avis, peut-on écrire dans cet algorithmeT[i] à la place de T[itemp]
-
non tu peux metre T[j] a la place de T[itemp]
-
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 -
la boucle ça veut dire que j=i au debut mais ça evolue j n'est pas tout le temps egal a i
-
ok, encore merci pour tes explications
-
de rien content de tavoir aidé ;)
si t'as plus de probleme n'oublie pas de metre resolu -
non je n'oublie pas et je pense l'avoir fais