Hallo zusammen,
"der nervsack wieder
".
Meine Aufgabe ist es sollen zwei Arrays sortiert werden, und in ein Array gespeichert werden. Das 1te Array ist von klein nach groß Sortiert (aufsteigend) das 2te von groß nach klein (absteigend) sortiert.
Meine Lösung sieht so aus:
Das ganze läuft auch so
hoffentlich auch immer das hab ich bis jetzt nicht getestet. Gibt es eine Möglichkeit das schöner hin zu bekommen?
Es soll in einer Methode geschrieben werden. Denn meine Lösung vorher war diese:
und die arraySort Methode:
Ich weiß das ich nervig bin bei solchen Fragen wie z. B. kann man das besser machen bzw. ordentlich oder so etwas! Natürlich weiß ich das ich mir da selbst Gedanken machen muss doch ich bin erst mal froh das es läuft denn für den Ansatz oben habe ich jetzt 1 Stunde gebraucht. Das dauert viel zu lange
und effizient weiß ich nicht ob das so toll ist. Das mit dem System.arraycopy ist eine echt coole Idee 
LG
"der nervsack wieder
Meine Aufgabe ist es sollen zwei Arrays sortiert werden, und in ein Array gespeichert werden. Das 1te Array ist von klein nach groß Sortiert (aufsteigend) das 2te von groß nach klein (absteigend) sortiert.
Meine Lösung sieht so aus:
Java:
int[] a=new int[] {1,3,5,11};
int[] b=new int[] {17,8,7,4};
int length=a.length+b.length;
int[] merge=new int[length];
int n=0;
int lengthA=0;
int lengthB=b.length-1;
while(n<length) {
if(lengthA < 4 && a[lengthA]<b[lengthB]) {
merge[n]=a[lengthA];
lengthA++;
}
else {
merge[n]=b[lengthB];
lengthB--;
}
n++;
}
for(int i=0;i<merge.length;i++)
System.out.print(merge[i]+" ");
Das ganze läuft auch so
Es soll in einer Methode geschrieben werden. Denn meine Lösung vorher war diese:
Java:
int[] a=new int[] {1,3,5,11};
int[] b=new int[] {17,8,7,4};
int length=a.length+b.length;
int[] merge=new int[length];
System.arraycopy(a, 0, merge, 0, a.length);
System.arraycopy(b,0,merge,4,b.length);
merge=arraySort(merge);
for(int i=0;i<merge.length;i++)
System.out.print(merge[i]+" ");
und die arraySort Methode:
Java:
public static int[] arraySort(int[] sortieren) {
int temp;
for (int i = 1; i < sortieren.length; i++) {
temp = sortieren[i];
int j = i;
while (j > 0 && sortieren[j - 1] > temp) {
sortieren[j] = sortieren[j - 1];
j--;
}
sortieren[j] = temp;
}
return sortieren;
}
Ich weiß das ich nervig bin bei solchen Fragen wie z. B. kann man das besser machen bzw. ordentlich oder so etwas! Natürlich weiß ich das ich mir da selbst Gedanken machen muss doch ich bin erst mal froh das es läuft denn für den Ansatz oben habe ich jetzt 1 Stunde gebraucht. Das dauert viel zu lange
LG