A quoi sert ce petit programme?
reading
-
Infaustus Messages postés 256 Statut Membre -
Infaustus Messages postés 256 Statut Membre -
Bonjour,
Je comprend pas a quoi sert ce programme pouvez vous m'aider merci
F(A){ // A[0..(n-1)] contient une permutation de {1,2,...,n}
int i,j;
for ( i == n-1 ; i > 0 && (A[i-1] > A[i]) ; i--){
// empty statement
}
if ( i == 0 )
return 0;
for ( j == i+1 ; j < n && (A[i-1] < A[j]) ; j++){
// empty statement
}
permute( A[i-1], A[j-1] ); // permutte les 2 valeurs
reverse ( A[i..n-1] ); // renverse le sous-tablea A[i...(n-1)] cad A[i] devient A[n-1]; A[i+1] devient A[n-2] etc...
return 1;
}
Je comprend pas a quoi sert ce programme pouvez vous m'aider merci
F(A){ // A[0..(n-1)] contient une permutation de {1,2,...,n}
int i,j;
for ( i == n-1 ; i > 0 && (A[i-1] > A[i]) ; i--){
// empty statement
}
if ( i == 0 )
return 0;
for ( j == i+1 ; j < n && (A[i-1] < A[j]) ; j++){
// empty statement
}
permute( A[i-1], A[j-1] ); // permutte les 2 valeurs
reverse ( A[i..n-1] ); // renverse le sous-tablea A[i...(n-1)] cad A[i] devient A[n-1]; A[i+1] devient A[n-2] etc...
return 1;
}
A voir également:
- A quoi sert ce petit programme?
- Programme demarrage windows - Guide
- Petit point vert snap ✓ - Forum Snapchat
- Petit 2 ✓ - Forum Windows
- Programme word gratuit - Guide
- Programme bonjour ✓ - Forum Windows
4 réponses
Tu demandes ce que fais le programme alors que tu te permets de virer des lignes de codes ... ça n'a pas de sens ...
c'est comme si je te disais de me traduire en anglais : "la maison ... etc ... jaune."
au passage une boucle for ne commence pas par une condition ("==" : test d'égalité, "=" : affectation de valeur)
c'est comme si je te disais de me traduire en anglais : "la maison ... etc ... jaune."
au passage une boucle for ne commence pas par une condition ("==" : test d'égalité, "=" : affectation de valeur)
j'avais pris le "etc..." pour un retour à la ligne sans penser qu'il s'agissait de la fin du commentaire
bon, sinon comprendre ce que fait un code, ce n'est pas en l'admirant que ça nous tombe du ciel ... déroule-le par toi-même...
mais comme je m'emmerde je te le fais :p et en corrigeant tes "==" en "=" dans tes for()
la première for tu parcours A de la fin au début tant que A[i-1] > A[i], donc si ta liste A est triée dans l'ordre croissant, tu te retrouveras avec i = 0 à la sortie
si i==0 ... ça quitte ta fonction en renvoyant 0
la 2ème boucle for() me semble inutile car tu parcours A de i à la fin tant que A[i-1] < A[j], mais puisque tu viens de parcourir en descendant A dans l'autre sens je ne vois pas l'intérêt de cette boucle (en même temps j'ai pas testé le bout de code, je déroule moi-même..)
les 2 dernières lignes de code sont commentées ...