Récursivité de la fonction Tri-Fusion
Bonjour,
Je suis débutant, et je ne comprends vraiment pas la fonction "Tri-Fusion" tirée de l'algorithme qui s'y rapporte. Je comprends la logique générale, mais j'ai beaucoup plus de mal avec l'implémentation.
J'ai écrit la fonction comme suit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
int A[] = {5,1,3,7};
public static void triFusion(int A[], int p, int r) {
int q;
if(p < r){
q = ((p+r)/2);
triFusion(A, p, q);
triFusion(A, q+1, r);
Fusion(A, p, q, r);
}
} |
Je ne comprends pas l'ordre d'appel des fonctions triFusion(A, p, q), triFusion(A, q+1, r) et Fusion(A, p, q, r). Quelqu'un peut-il m'expliquer ce qui se passe concrètement ?
Merci.