G
Gelöschtes Mitglied 70275
Gast
Hallo, weiß jemand wie man ein zweidimensionales Array sortiert? Danke und viele Grüße.
Du hast also 30.000.000.000 Einträge in deinem Array. Wenn du ein Sortierverfahren benutzt, das O(n²) Vergleiche benötigt, so kommst du auf die Größenodnung von 900.000.000.000.000.000.000 Vergleichen - das kann eine Weile dauern!int [][] arr = new int[100000][300000];
Hast du etwas geraucht?man könnte auch altmodisch einer DB machen lassen
nein nur paar bierHast du etwas geraucht?![]()
30.000.000.000 * 4 = 120.000.000.000
Die Anzahl der Vergleiche wächst mit dem Quadrat der Einträge - du hättest also doch 900.000.000.000.000.000.000 Vergleiche.dann hätte ich nur 30.000.000.000 Vergleiche.
Warum das? Min und Max kannst du doch auch in einem zweidimensionalen Array bestimmen.Ich nehme den Weg über ein eindimensionales array
über den Int wertebereich drüber wenn du nur 1 array benutzt25.705.032.705
Wieso denn das? Ist doch noch relativ schnell. Die Frage ist was du mit wen Werten machen möchtest.Gut, das wäre zwar nicht ok - ist aber so.
int[][] kleinesArr = {{1,7,3}, {1,2,3}, {9,2,3}, {1,2,3,4,5,6,7}, {1,2,3}, {1,2,3}};
int d = 7; int o=8;
int[][] klArr = new int[d][o];
klArr[0][0] = 5 ;
klArr[0][1] = 1 ;
klArr[0][2] = 2 ;
klArr[0][3] = 2 ;
klArr[0][4] = 1 ;
klArr[0][5] = 5 ;
klArr[0][6] = 5 ;
klArr[1][0] = 5 ;
klArr[1][1] = 1 ;
klArr[1][2] = 2 ;
klArr[1][3] = 2 ;
klArr[1][4] = 5 ;
klArr[1][5] = 5 ;
klArr[2][0] = 5 ;
klArr[2][1] = 1 ;
klArr[2][2] = 1 ;
klArr[2][3] = 5 ;
klArr[2][4] = 5 ;
klArr[2][5] = 1 ;
klArr[2][6] = 5 ;
klArr[3][0] = 5 ;
klArr[3][1] = 6 ;
klArr[3][2] = 1 ;
klArr[3][3] = 5 ;
klArr[3][4] = 7 ;
klArr[3][5] = 1 ;
klArr[3][6] = 5 ;
klArr[4][0] = 5 ;
klArr[4][1] = 1 ;
klArr[4][2] = 1 ;
klArr[4][3] = 8 ;
klArr[4][4] = 5 ;
klArr[4][5] = 1 ;
klArr[5][0] = 5 ;
klArr[5][1] = 1 ;
klArr[5][2] = 1 ;
klArr[5][3] = 5 ;
klArr[5][4] = 5 ;
klArr[5][5] = 1 ;
Dann musst du eben auf einen Quantencomputer warten.Ich finde nicht daß es schnell ist.
Arbeitsspeicher benötigst.111.76 Giga Byte.
Und ich denke, es ist unwichtig für Dich wozu ich es brauche.
Ein zweidimensionales Array unterscheidet sich doch nur in der Adressierung von einem eindimensionalen. Du kannst also das 2d Array beibehalten und musst nur darauf richtig operieren.Also, wenn es funktionieren würde ein array in vier Teile zu zerlegen
public static void sortArray(int arr[][]) {
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return Integer.valueOf(o1[0]).compareTo(Integer.valueOf(o2[0]));
}
});
}
???Hätte nicht gedacht, daß meine Angaben nicht ausreichen.
Du willst nur das Minimum und Maximum im gesamten Array ermitteln? Warum willst du dann überhaupt sortieren? Iteriere doch einfach über alle Elemente, prüfe jeweils, ob das aktuell Betrachtete größer bzw. kleiner als das bisherige Maximum bzw. Minimum ist, merke es dir gegenfalls als neues Zwischenergebnis und du bist nach einem Durchlauf fertig.Ich brauche eigentlich keine vollständige Sortierung - wenn das so ist. Ich brauche das Minimum/Maximum des Array-Eintrages.