Zusammenfügung von 2 Arrays

hallo, weiß jemand wie ich diese 2 arrays zu einem 3. zusammenfügen und dann sortieren kann?

public class ArrayMerge {

public static void main(String[] args) {
// TODO Auto-generated method stub

int anzWerte = 10;
int[] feld1 = new int[anzWerte];
for (int i = 0; i

hallo, weiß jemand wie ich diese 2 arrays zu einem 3.
zusammenfügen und dann sortieren kann?

Hausaufgaben?
Naja, was solls, neues Array erstellen mit der Länge:
Länge von Array1 + Länge von Array2

Kopiere mit einer For-Schleife die Elemente Array1[i] nach Array3[i]
Kopiere mit einer For-Schleife die Elemente Array2[i] nach Array3[Länge Array1 + i]

Sortieralgorithmen findest Du in der Wikipedia.

ok danke, ja hausaufgaben aber nur ein kleiner bruchteil der eigentlichen aufgabe, deswegen geht das hoffentlich i.O.

neues Array sieht dann so aus?
int [] mergeArray = new int [anzWerte+anzWerte2];

Guten Tag,

einfügen und dann sortieren ist halt recht ineffizient, weil da werden zuerst mal n+m Elemente kopiert und dann nochmal drauf sortiert.

Komplexität: O(n+m) + O(n+m log(n+m)) ==> O(n log(n)

Merge indem man mit je 1 cur über die beiden Ausgangsarrays iteriert und immer jeweils das passende Element einfügt is da um einiges besser. (ein Hilfsindex für die aktuelle pos im Zielarray wird noch notwendig sein)

Komplexität: O(n+m) ==> O(n)

einfügen und dann sortieren ist halt recht ineffizient, weil
da werden zuerst mal n+m Elemente kopiert und dann nochmal
drauf sortiert.

Komplexität: O(n+m) + O(n+m log(n+m)) ==> O(n log(n)

Merge indem man mit je 1 cur über die beiden Ausgangsarrays
iteriert und immer jeweils das passende Element einfügt is da
um einiges besser. (ein Hilfsindex für die aktuelle pos im
Zielarray wird noch notwendig sein)

Komplexität: O(n+m) ==> O(n)

Und jetzt erkläre das nochmal so, daß der Threadersteller, der nichtmal weiß, wie man zwei Arrays in eins kopiert, versteht was Du sagen willst… Ich glaube jeder funktionierende Sortieralgorithmus ist für seine Zwecke ausreichend. Wenn er schlau ist, hat er sich die Wikpedia Artikel zu dem Thema angeschaut, da gibt es Pseudocode drin.

Hi,

Merge indem man mit je 1 cur über die beiden Ausgangsarrays
iteriert und immer jeweils das passende Element einfügt is da
um einiges besser.

das setzt aber voraus, dass die Eingabearrays schon sortiert sind. Wenn du sie aber vorher sortieren musst, um das Merging zu ermöglichen, hast du schnell wieder dein O(n log(n)). :smile:

Gruß

Andreas