/ / Krusksalgorithmus - Sortiere eine Adjazenzmatrix in aufsteigender Reihenfolge - Java, Algorithmus, Sortierung, Matrix

Krusksalgorithmus - Sortiere eine Adjazenzmatrix in aufsteigender Reihenfolge - Java, Algorithmus, Sortierung, Matrix

Also verwende ich eine Adjazenz-Matrix für meine Kruskals-Algorithmus-Implementierung, aber ich war mir nicht sicher, wie ich diese Matrix sortieren würde.

während ich mich noch daran erinnere, welche zwei Eckpunkte das sindgewichtete Kante gehört zu. Ich dachte daran, über die Matrix zu iterieren und die niedrigste Gewichtskante zu einer neuen Matrix hinzuzufügen und diesen Prozess fortzusetzen, bis alle Werte in aufsteigender Reihenfolge sind und zu dieser neuen Matrix hinzugefügt wurden.

Allerdings weiß ich dann nicht, welche zweiVertices, zu denen die Kantenwerte gehören. Also wollte ich fragen, wie ich meine Werte in aufsteigender Reihenfolge ordnen könnte, während ich mich daran erinnere, zu welcher Zeile und Spalte jeder Wert gehört.

Gibt es einen bestimmten Weg, dies zu tun? Jede Hilfe wäre großartig, danke.

Antworten:

1 für die Antwort № 1

Sie können die Matrix nicht so sortieren, wie es ist -Verwenden Sie einen alternativen Container mit Bezug auf die Matrixzelle, um die Kanten zu speichern und sie zu sortieren. Eine Beispielstruktur dafür würde ungefähr so ​​aussehen:

class Edge implements Comparable {
int weight;
int i; // x coordinate in the matrix
int j; // y coordinate in the matrix
int compareTo(Edge rhs) {
return weight - rhs.weight;
}
}