zwei Arrays nach Werten durchsuchen und zusammenfügen

Oezlem

Mitglied
Hallo allerseits,

ich habe ein kleines Problem:

gegeben sind zwei Arrays, das erste enthält auch Zahlen doppelt, das zweite nur einfach.
Ich soll nun den ersten Wert von Array2 nehmen und so oft in das neue Array schreiben, wie im Array1 enthalten usw. die Werte, die in Array2 nicht enthalten sind sollen ans Ende angehängt werden.

Ich habe das nun auch soweit, nur mit dem Problem, wenn irgendwo in der Mitte vom Array1 ein Wert ist, der in Array2 nicht vorkommt, geht dieser verloren.

Bei den gegeben Arrays von:

int[] array = { 4, 5, 3, 5, 4, 6, 8, 9, 11, 4, 21 };

int[] array2 = { 4, 3, 6, 5, 11, 8 };

bekomme ich die Ausgabe:

{4,4,4,3,6,5,5,11,8,21,0}

eigentlich sollte ausgegeben werden:
{4,4,4,3,6,5,5,11,8,9,21}

die neun geht mir verloren.

Help please 🙂
 
Zuletzt bearbeitet:
HI,

ich hatte Code angegeben, war mir dann aber unsicher, ob das Plagiatstool evtl. auch über meinen eigenen Code fährt und habe ihn wieder rausgelöscht.
Privat konnte ich ihn dir leider auch nicht schicken 🙁
 
Hm... ein naiver Ansatz bestünde darin, das Problem in zwei Teile aufzuteilen:
Code:
// 1. Teil: vorhandene Elemente schreiben
Für jedes Element e aus array2 wiederhole {
    Für jedes Element x aus array1 wiederhole {
         Falls e == x, dann gib e aus
    }
}

// 2. Teil: nicht vorhandene Elemente schreiben
Für jedes Element e aus array1 wiederhole {
    gefunden := false
    Für jedes Element x aus array2 wiederhole {
         Falls e == x, dann gefunden := true
    }
    Falls nicht gefunden, dann gib e aus.
}

Man könnte aber auch z. B. sortieren.
 

Zurück
Oben