2016-03-31 6 views
-1

Ich versuche derzeit, ein 2D-Array in aufsteigender Verwendung Auswahl sortieren zu sortieren. aber das Ergebnis ist nicht gut. ich habe eigentlich ein ziemlich großen Daten wie Doppel array [1000] [1000] aber wenn wir zB Nutzungsdaten wie folgt aus:die beste Art 2D Doppel-Arrays in Java

arrays = 10.555 1.023 5.852   
     8.856 1.001 4.483 
     1.121 5.321 1.184 
     5.123 0.834 3.151 
     15.123 7.123 1.152 

wie eine 2D-Array zu machen, wie dies bei der Sortierung und kann nehmen auf dem Index, der zuvor nicht sortiert hat. nach Array Sortierung:

arrays = 1.121 0.834 1.152 
     5.123 1.001 1.184 
     8.856 1.023 3.151 
     10.555 5.321 4.483 
     15.123 7.123 5.852 

und kann wie dieser Index wie dies in 2D-Array speichern.

Ich möchte diesen Code in großen Dataset wie Double-Array [1000] [1000] verwenden. Was ist die Lösung?

+2

Sie versuchen also, jede Spalte einzeln zu sortieren? Es wäre am einfachsten, das Array zu transponieren (Zeilen und Spalten wechseln) und Java für Sie zu verwenden. – Teepeemm

Antwort

0

OK, es sieht so aus, als ob Sie jede Spalte einzeln sortieren wollen, daher lautet die folgende Antwort, wenn meine Annahme richtig ist. Um so etwas zu lösen, würde ich keine Sortierung verwenden. Ich würde Insertion sort verwenden, (weil es schneller ist) und ein paar verschachtelte Schleifen haben, die nur bestimmte Spalten überschreiten. (Zum Beispiel, wenn die Schleife zum ersten Mal ausgeführt wird, muss sie nur durch die erste Spalte gehen und beim zweiten Mal, wenn sie ausgeführt wird, muss sie nur durch die zweite Spalte gehen).

0

Es gibt mehrere Sortieralgorithmen, die in der Literatur akzeptiert werden. Einer der schnellsten ist "Quick Sort" mit seiner zufriedenstellendsten und durchschnittlichen Fallleistung. Sie sollten es besser überprüfen, anstatt einen effektiveren Algorithmus zu implementieren. Sie können es sich ansehen here.