System.out.println(Arrays.toString(flatternAndSortWithoutBiggest(new int[][] {{1,2,11},{4,8,990,110},{7,8,90,1100,990}})));
}
public static int[] flatternAndSortWithoutBiggest(int[][] array) {
if (array == null || array.length == 0)
throw new IllegalArgumentException ("Array null oder leer!");
int[] eindimens = new int[12];
int[][] zweidimens = {
new int[] {1,2,11},
new int[] {4,8,999,110},
new int[] {7,8,90,1100,990}};
int n =0;
int ignoreCountPerArray=1;
for (int i = 0; i < zweidimens.length; i++) {
n += zweidimens
.length -ignoreCountPerArray;
}
eindimens = new int [n];
int count = 0;
for (int i = 0; i < zweidimens.length; i++) {
for (int j = 0; j < zweidimens.length - 1; j++) {
eindimens[count] = zweidimens[j];
count++;
}
}
for (int i = 0; i < zweidimens.length; i++) {
int[] subArray = zweidimens;
if (subArray.length > 0) {
int ix = 0;
int max = subArray[ix];
for (int k = ix + 1 ; k < subArray.length; k++) {
if (subArray[k] > max) {
max = subArray[k];
ix = k;
}
}
int last = subArray.length - 1;
int tmp = subArray[ix];
subArray[ix] = subArray[last];
subArray[last] = tmp;
}
}
int m = eindimens.length;
int temp = 0;
for(int i=0; i < m; i++){
for(int j=1; j < (m-i); j++){
if(eindimens[j-1] < eindimens[j]){
temp = eindimens[j-1];
eindimens[j-1] = eindimens[j];
eindimens[j] = temp;
}
}
}
System.out.println(Arrays.toString(eindimens));
return eindimens;
Also meine Frage lautet was habe ich hier falsch gemacht womit die drei größten Werte in meinem Array nicht gelöscht werden
}
public static int[] flatternAndSortWithoutBiggest(int[][] array) {
if (array == null || array.length == 0)
throw new IllegalArgumentException ("Array null oder leer!");
int[] eindimens = new int[12];
int[][] zweidimens = {
new int[] {1,2,11},
new int[] {4,8,999,110},
new int[] {7,8,90,1100,990}};
int n =0;
int ignoreCountPerArray=1;
for (int i = 0; i < zweidimens.length; i++) {
n += zweidimens
.length -ignoreCountPerArray;
}
eindimens = new int [n];
int count = 0;
for (int i = 0; i < zweidimens.length; i++) {
for (int j = 0; j < zweidimens.length - 1; j++) {
eindimens[count] = zweidimens[j];
count++;
}
}
for (int i = 0; i < zweidimens.length; i++) {
int[] subArray = zweidimens;
if (subArray.length > 0) {
int ix = 0;
int max = subArray[ix];
for (int k = ix + 1 ; k < subArray.length; k++) {
if (subArray[k] > max) {
max = subArray[k];
ix = k;
}
}
int last = subArray.length - 1;
int tmp = subArray[ix];
subArray[ix] = subArray[last];
subArray[last] = tmp;
}
}
int m = eindimens.length;
int temp = 0;
for(int i=0; i < m; i++){
for(int j=1; j < (m-i); j++){
if(eindimens[j-1] < eindimens[j]){
temp = eindimens[j-1];
eindimens[j-1] = eindimens[j];
eindimens[j] = temp;
}
}
}
System.out.println(Arrays.toString(eindimens));
return eindimens;
Also meine Frage lautet was habe ich hier falsch gemacht womit die drei größten Werte in meinem Array nicht gelöscht werden