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