Hallo hier mal eine Variante mit deinem Code und den Zetteln von Konrad Post #10.
Bei deine Variante mit der Klasse „ T“ musst du natürlich die "compareTo" Methode sinnvoll überschreiben.
Oder Sollte das T ein Generic sein ?
Dann hätte aber „<T>“ vor der Methoden Definition stehen müssen.
[CODE=java]public class Merge {
public Merge() {
int[] s1 = {4, 9, 11};
int[] s2 = {3, 8};
int[] s3 = {1};
int[] s4 = {10, 12, 14, 27};
int[] ergebnis = merge4(s1, s2, s3, s4);
System.out.println(Arrays.toString(ergebnis));
}
public static void main(String[] args) {
new Merge();
}
public int[] merge4(int[] b, int[] c, int[] d, int[] e) {
int[] a = merge(b, c);
a = merge(a, d);
a = merge(a, e);
return a;
}
public int[] merge(int[] b, int[] c) {
int[] a = new int[b.length + c.length];
int la = 0;
int lb = 0;
int lc = 0;
while (lb < b.length && lc < c.length) {
if (b[lb] <= c[lc]) {
a[la] = b[lb];
la++;
lb++;
} else {
a[la] = c[lc];
la++;
lc++;
}
}
while (lb < b.length)
a[la++] = b[lb++];
while (lc < c.length)
a[la++] = c[lc++];
return a;
}
}
[/CODE]