Guten Tag ich zweifle schon seit 2 Tagen an einer bestimmten Aufgabe.
Ich möchte ein mehrdimensionales Array in ein eindimensionales Array übertragen, dabei soll aber die jeweils größte Zahl aus jedem Teil Array ausgelassen bzw ignoriert werden. Das so entstandene Array soll dann schließend mit der Bubble Sort Methode absteigend sortiert werden. Die Länge und die Werte der Arrays kenne ich normalerweise nicht in meinem Code habe ich jedoch einfach Beispiel Werte genommen und diese zu überprüfen.
Das Problem ist mithilfe des Sysos ist meine Ausgabe folgende: [8, 7, 4, 4, 3, 3, 2, 2, 1, 0, 0, 0, 0, 0, -13],
Somit wurden die größten Zahlen ja leider nicht ignoriert und außerdem verstehe ich nicht woher diese 5 " 0 " aufeinmal kommen.
Für Verbesserungsvorschläge wäre ich sehr dankbar.
Ich möchte ein mehrdimensionales Array in ein eindimensionales Array übertragen, dabei soll aber die jeweils größte Zahl aus jedem Teil Array ausgelassen bzw ignoriert werden. Das so entstandene Array soll dann schließend mit der Bubble Sort Methode absteigend sortiert werden. Die Länge und die Werte der Arrays kenne ich normalerweise nicht in meinem Code habe ich jedoch einfach Beispiel Werte genommen und diese zu überprüfen.
Code:
import java.util.Arrays;
public class beispiel {
public static void main(String[] args) {
int[][] b = { new int[] { 1, 2, 3, 4 }, new int[] { 4, 3, 2, 1 }, new int[] { 0, 7, 8, 4, 3 },
new int[] { -13, 4 } };
int n = 0;
int[] a;
for (int i = 0; i < b.length; i++) {
n += b[i].length;
}
a = new int[n];
int[] c = {};
int tmp = 0;
for (int i = 0; i < b.length; i++) {
for (int j = 0; j < b[i].length; j++) {
tmp = b[i][0];
if (b[i][j] > tmp) {
tmp = b[i][j];
b[i][j] = b[i][b[i].length - 1];
b[i][b[i].length - 1] = tmp;
}
}
}
int count = 0;
for (int i = 0; i < b.length; i++) {
for (int j = 0; j < b[i].length - 1; j++) {
a[count] = b[i][j];
count++;
}
}
boolean swapped;
do {
swapped = false;
for (int i = 1; i < a.length; i++) {
if (a[i] > a[i - 1]) {
int swap = a[i - 1];
a[i - 1] = a[i];
a[i] = swap;
swapped = true;
}
}
} while (swapped);
System.out.println(Arrays.toString(a));
}
}
Somit wurden die größten Zahlen ja leider nicht ignoriert und außerdem verstehe ich nicht woher diese 5 " 0 " aufeinmal kommen.
Für Verbesserungsvorschläge wäre ich sehr dankbar.