Spalte ein Array sortieren?

8

Ich möchte ein mehrdimensionales Array spalten. Ich habe den Code-Setup, aber es zeigt nicht die richtigen Ergebnisse ...

Beispiel vor dem Sortieren:

6.0 4.0 2.0

4.0 2.0 4.0

1.0 3.0 1.0

Beispiel nach dem Sortieren:

1.0 2.0 1.0

4.0 3.0 2.0

6.0 4.0 4.0

Das ist mein Code:

%Vor%

Das bekomme ich:

1.0 3.0 1.0

6.0 4.0 4.0

6.0 4.0 2.0

Bitte sag mir, was ich falsch mache!

Danke!

    
user2896120 27.04.2015, 07:50
quelle

3 Antworten

2

Ihr Sortieralgorithmus sortiert nicht - er macht etwas seltsam.

Hier ist ein Bubble-Sort-Equivalent zur Demonstration.

%Vor%

Obwohl es eine bessere Option wäre, jede Spalte in ein separates Array zu kopieren, sie zu sortieren und wieder einzufügen - so müssten Sie zumindest keinen eigenen Sortieralgorithmus implementieren.

%Vor%     
OldCurmudgeon 27.04.2015, 08:28
quelle
1

Ich habe ein Beispiel für Ihr Problem gefunden, hoffe, es hilft.

Code

%Vor%

Konsolenausgabe

%Vor%     
Kevin Paton 27.04.2015 08:36
quelle
0

Ihr Sortieralgorithmus ist aus verschiedenen Gründen falsch: Sie aktualisieren min nicht, wenn Sie einen neuen finden, Sie vergleichen jedes Element nur mit dem Mindestwert, wenn es mit allen Elementen verglichen werden soll ...

Ich kann zwei Lösungen vorschlagen:

  1. Betrachten Sie bestehende Algorithmen zum Sortieren von Arrays
  2. transponiere die Matrix, verwende Arrays.sort() auf Zeilen, transponiere die Matrix zurück
yvilbe 27.04.2015 08:17
quelle