所以我使用邻接矩阵来实现我的kruskals算法,但我不确定如何对这个矩阵进行排序。
同时仍然记住加权边属于哪两个顶点。我正在考虑迭代矩阵并将最低权重边缘添加到新矩阵并继续此过程,直到所有值按升序排列并添加到新矩阵中。
然而,我最终不知道这些边缘值属于哪两个顶点。所以我想问一下如何按升序排序我的值,同时记住每个值所属的行和列。
有没有具体的方法呢?任何帮助都会很棒,谢谢。
答案 0 :(得分:1)
您将无法按原样对矩阵进行排序 - 使用参考矩阵单元格的替代容器来存储边缘并对其进行排序。这个示例结构如下所示:
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;
}
}