# Sortieren eines Array



## chillerStudent (18. Mai 2011)

Hallo,

folgende Hausaufgabe muss ich bearbeiten:

Für die Aufgabe sei k int-Arrays a_0.....a_k-1 gegeben, wobei k eine Zweierpotenz ist.
Die Arrays können unterschiedlich viele Elemente enthalten; wir bezeichnen die Länge von a_i mit n_i. Es gilt


----------



## Ebenius (18. Mai 2011)

Na das ist doch eine hübsche Hausaufgabe. Wie hast Du denn angefangen sie zu lösen?

Ebenius


----------



## Andi_CH (19. Mai 2011)

... mit rumchillen 

Äh ich vermisse die konkrete Frage - nach einem halben Jahr hier und über 130 Beiträgen wirst du ja hoffentlich wissen wie man einen Array definiert, auch wenn er 2 dimensional ist.


----------



## chillerStudent (19. Mai 2011)

OHH man, Tut mir leid. Ich wollte auf Vorschau klicken und hab ausversehen dann auf Theme erstellen geklickt. Ich konnte noch die Seite Stoppen aber ich wusste nicht, dass die seite trotzdem erstellt worden ist. Sryyy. 

Also meine Hausaufgabe lautet, dass ich ein k Array erstellen muss und diese zusammenfügen muss.
Beispiel:

Eingegeben:
[1234]
[56789]
[]
[10,11,12]

Zwischenschritt:
[123456789]
[10,11,12]

Ergebnis:
[1,2,3,4,5,6,7,8,9,10,11,12]

Wie programmiert man ein k Arrays?


----------



## SlaterB (19. Mai 2011)

tja, Java kann man noch zu lehren versuchen, für Aufgaben lesen usw. ist es nach der 5. Klasse bisschen spät

das heißt doch einfach nur, dass hier k=4 Arrays eingegeben werden (was für sich schon eine Frage ist, im Quellcode, über Konsole?)
wenn k = 4 vorher bekannt ist, kannst du eine Datenstruktur int[4][] anlegen, um 4 int[]-Arrays abzuspeichern,
ansonsten geht auch eine Liste für die Arrays, wenn die Eingabe fertig ist weißt du schon wie viele es sind

letztlich sind in diesem Fall 4 Arrays im Programm und es muss weitergearbeitet werden,
soweit schon undenkbar? das war ja quasi noch kein Stück Java


----------



## NattleBet (19. Mai 2011)

indem man eine weitere Dimension an das array dranhängst, damit hätte man also ein 2-Diminsionales Array


----------



## chillerStudent (19. Mai 2011)

Komme ich so weiter?
Hab jetzt ein dreizeiler 


```
static void array(){
		int[][] n = {{0},{1,2},{3,4,5},{6,7,8,9}};
	}
```

Ich weiß jetzt nicht, wie ich z.b. {0} und {1,2} zu einem {0,1,2} umwandeln kann.


----------



## SlaterB (19. Mai 2011)

könntest du 
int[] a = {...}
int[] b = {...}
zusammenfassen?
gemeinsame Länge bestimmen, ein entsprechend großes Array anlegen,
mit einer oder zwei Schleifen den Inhalt beider Teil-Arrays an den richtigen Platz kopieren?

kannst du ein einzelnes Array kopieren?


----------



## NattleBet (19. Mai 2011)

du musst das 2-dim array vollständig durchlaufen und bei jedem schritt den wert in ein neues 1-dim array packen.


----------



## Andi_CH (19. Mai 2011)

Der Soziologiestudent macht wieder mal ein Experiment mit uns .....



chillerStudent hat gesagt.:


> Komme ich so weiter?


Ja - nur ob es die richtige Richtung ist?



chillerStudent hat gesagt.:


> Ich weiß jetzt nicht, wie ich z.b. {0} und {1,2} zu einem {0,1,2} umwandeln kann.


mit meiner hochkomplexen merge-Funktion


```
public class MergeIntArrays {
	public static int[] merge(int[] left, int[] right) {
		int[] res = new int[left.length+right.length];
		int i = 0;
		for(int wert : left) {
			res[i++]=wert;
		}
		for(int wert : right) {
			res[i++]=wert;
		}
		return res;
	}

	public static void main(String[] args) {
		int[] i1 = {0};
		int[] i2 = {1, 2};
		System.out.println(Arrays.toString(merge(i1, i2)));
	}
}
```

--

Leute erwürgt mich nicht, ich warte schlicht und einfach wieder mal auf ein Testresultat ;-)


----------

