Auf Thema antworten

Hier ist wieder etwasRekursives:


[code=Java]public static int[] ein(int[]... arrays) {

    if (arrays.length == 2) {

        int[] array = new int[arrays[0].length + arrays[1].length];

        fuegeEin(array, 0, arrays[0], arrays[1]);

        return array;

    }

    int[][] newarrays = new int[arrays.length - 1][];

    for (int i = 0; i < newarrays.length; i++) {

        newarrays[i] = arrays[i];

    }

    return ein(ein(newarrays), arrays[arrays.length - 1]);

}[/code]


iterativ wäre alles viel, viel schneller. idee: Beginne mit einem 0-elementigen Array, füge nacheinander alle anderen Arrays jeweils einzeln hinzu (erstelle ein neues größeres Array und füge Elemente aus beiden Arrays ein).


Wenn man berechnen könnte welches Element an Stelle i im ErgebnisArray vorkommt, ginge es wieder schneller.


Bringt hoffentlich zur Lösung



Oben