Zitat von
Evian:
@DeddyH: Nein, die ursprüngliche Reihenfolge soll erhalten bleiben, also unsortiert.
@jfheins: Na mein erster Ansatz war auch so, aber hierbei gibt es ja dann 2 Vorschleifen. Kann ich es nicht irgendwie mit nur einer Vorschleife, aber auch ohne Redundanz machen?!
Bei deiner Lösunf wurde die inner
For-Schleife auch 2 mal ausgeführt
Aber wenn es bei gerade/ungerade beleibt, kannst du es natürlich auch so machen:
Code:
long[] gruppiert(final long[] zahlen) throws IllegalArgumentException{
if (zahlen == null)
{
throw new IllegalArgumentException();
}
int pos1 = 0;
int pos2 = zahlen.length - 1;
final long[] result = new long[zahlen.length];
for(int i = 0; i < zahlen.length; i++)
{
if (zahlen[i] % 2 == 0)
result[pos1++] = zahlen[i];
else
result[pos2--] = zahlen[i];
}
return result;
}
Du fügst also quasi von 2 Seiten ein