Salut à tous,
Presque tout est dans le titre, je n'arrive pas à comprendre cette algorthme en regardant les sources suivantes (qui fonctionnent parfaitement en passant) ...
J'aimerai beaucoup que l'on m'explique le principe de l'algo, j'ai besoin de le comprendre pour essayer de le coder plus clairement si cela est possible, je vous remercie d'avance !!
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 #include <stdio.h> #define NB_VAL 3 int array[NB_VAL] = { 0 }; int num = 0; void display() { int i; for ( i = 0; i < NB_VAL; ++i ) printf( "%d ", array[i] ); printf("\n" ); } void permutation( int index ) { int i; array[++index] = ++num; if ( num == NB_VAL ) display(); for ( i = 0; i < NB_VAL; ++i ) if ( !array[i] ) permutation( i-1 ); array[index] = 0; --num; } int main() { int i; for ( i = -1; i < NB_VAL-1; ++i ) permutation( i ); }
Dans l'exemple précis seront affichés toutes les permutation de 1,2,3...
Merci d'avance !
De manière générale, existe t'il un algorithme qui a partir d'une liste ou d'un tableau d'entier, affiche toutes les permutations de ces entiers (en supposant que les entiers soit différents) ?
Partager