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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
package trieparfusion;
public class Main {
public static void main(String[] args) {
int []T={2,7,14,5,9,45};
int []k=trieFusion(T,0,T.length-1);
}
public static int[] trieFusion(int [] T,int debut,int fin)
{
if(T.length==1)
return T;
else
{
int milieu=T.length/2;
int []T1=trieFusion(T,0,milieu);
int []T2=trieFusion(T,milieu+1,T.length-1);
return fusionner(T1,T2);
}
}
public static int[] fusionner(int []T1,int []T2){
int i=1,j=1,N=T1.length,M=T2.length;
int []T=new int[M+N];
while(i+j != M+N+2)
{
if (i <= N)
{
if (j <= M)
{
if(T1[i-1] < T2[j-1])
{
T[i+j-2]=T1[i-1];
i++;
}
else
{
T[i+j-2]=T2[j-1];
j++;
}
}
else
{
T[i+j-2]=T1[i-1];
i++;
}
}
else
{
T[i+j-2]=T2[j-1];
j++;
}
}
return T;
}
} |
Partager