Zwei sortierte Arrays sollen gemischt werden, so dass ein ebenfalls sortiertes Gesamt-Array herauskommt.
Bis zur Zahl 9 klappt alles auch perfekt. Danach scheitert es an der letzten Zahl, weil:
Die beiden Arrays sind unterschiedlich lang. Bedeutet beim letzten Durchlauf vergleicht er array1 and der letzten Position mit array2 an der letzten Position. Und da 9 größer als 10 ist, gibt er als letztes 9 aus, anstatt die 10.
Jemand eine Idee wie man das Problem lösen könnte?
Bis zur Zahl 9 klappt alles auch perfekt. Danach scheitert es an der letzten Zahl, weil:
Die beiden Arrays sind unterschiedlich lang. Bedeutet beim letzten Durchlauf vergleicht er array1 and der letzten Position mit array2 an der letzten Position. Und da 9 größer als 10 ist, gibt er als letztes 9 aus, anstatt die 10.
Jemand eine Idee wie man das Problem lösen könnte?
Java:
public static void main (String[] args) {
int [] array1 = { 1 , 3 , 3 , 5 , 6 , 9 };
int [] array2 = { 2 , 3 , 5 , 7 , 8 , 9, 10 };
int [] result = new int [13];
// ab hier beginnt die Aufgabe
int a = 0;
int b = 0;
int k = 0;
while (k < result.length) {
if (array1[a] < array2[b]) {
result[k] = array1[a];
k++;
if (a < array1.length - 1) {
a++;
}
}
else if (array1[a] > array2[b]) {
result[k] = array2[b];
k++;
if (b < array2.length - 1) {
b++;
}
}
else if (array1[a] == array2[b]) {
result[k] = array1[a];
k++;
if (a < array1.length - 1) {
a++;
}
result[k] = array2[b];
k++;
if (b < array2.length - 1) {
b++;
}
}
}
// bis hier
for (int i = 0; i < result.length; i++) {
System.out.print(result[i] + " ");
}
System.out.println() ;
// output : 1 2 3 3 3 5 5 6 7 8 9 9 10
}