Bonjour,

J'aimerais juste que quelqu'un essaye d'exécuter ce bout de code sur le tri par fusion, sur Eclipse.

En fait, l'algorithme semble bon mais j'obtiens des STACK OVERFLOW même pour des tailles de tableau très petites.
Code : 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
34
35
36
37
38
39
40
public static void triFusion(int[] tab, int debut, int fin){
        int[] tab1= tab;
        if(fin>debut){
            triFusion(tab1, debut, (debut+fin/2));
            triFusion(tab1, (debut+fin)/2 +1,fin);
            fusionner(tab1, debut, (debut+fin)/2, fin);
        }
    }
 
    private static void fusionner(int[] tab, int debut,int milieu, int fin){
        int[] t1= new int[milieu-debut+1];
        int[]t2= new int[fin-milieu];
        for(int i=0; i<= t1.length-1; i++){
            t1[i]=tab[debut+i];
        }
        for(int i=0; i<= t2.length-1; i++){
            t1[i]=tab[fin+1+i];
        }
        int i=0,j=0,k=0;
        while(k<=fin){
            if(i>=t1.length){
                tab[k]=t2[j];
                j++;
            }else{
                if(j>=t2.length){
                    tab[k]=t1[i];
                    i++;
                }else{
                    if(t1[i]<= t2[j]){
                        tab[k]=t1[i];
                        i++;
                    }else{
                        tab[k]=t2[j];
                        j++;
                    }
                }
            }
            k++;
        }
    }
Je ne sais vraiment pas pourquoi ça réagit de la sorte.
J'utilise la version Helios d'Eclipse.

Quelqu'un saurait-il m'indiquer d'où peut venir le problème ?

Merci d'avance pour votre aide.