Auf Thema antworten

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]



Oben