| 12
 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++;
        }
    } | 
Partager