Je ne comprends pas un bout de code
Résolu
kazute
Messages postés
120
Statut
Membre
-
kazute Messages postés 120 Statut Membre -
kazute Messages postés 120 Statut Membre -
Bonjour,
Je me renseignais sur le tri par fusion dans les différents langages et je suis tombé sur un bout de code en C que je ne comprends pas :
En effet, je ne comprends pas ce qui est effectué dans la boucle for.
Je suppose qu'on dit que x[k] est égale a j et qu'on verifie que j est égale a n mais pour le point d'interrogation et ce qui suit je ne comprends pas.
Merci d'avance et bonne soirée
Je me renseignais sur le tri par fusion dans les différents langages et je suis tombé sur un bout de code en C que je ne comprends pas :
void fusion (int *a, int n, int m) {
int i=0, j=m, k;
int *x = malloc(n * sizeof (int));
for (k = 0; k < n; k++) {
x[k] = j == n ? a[i++]
: i == m ? a[j++]
: a[j] < a[i] ? a[j++]
: a[i++];
}
for (i = 0; i < n; i++) {
a[i] = x[i];
}
free(x);
}
En effet, je ne comprends pas ce qui est effectué dans la boucle for.
Je suppose qu'on dit que x[k] est égale a j et qu'on verifie que j est égale a n mais pour le point d'interrogation et ce qui suit je ne comprends pas.
Merci d'avance et bonne soirée
1 réponse
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
en programmation, il est préférable de ne pas supposer, et de plutôt lire la documentation.
cette page t'aidera à comprendre: https://zestedesavoir.com/articles/2505/les-bizarreries-du-langage-c-1/