最小生成树:
Prim算法:
普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex ),且其所有边的权值之和亦为最小。
题目(修路问题):
思路:
(1)第一个顶点选权值最小的边(2)第一个顶点,第二个顶点连通的边中选权值最小的边(3)第一个,第二个,第三个顶点连通的边中选权值最小的边…………注意:顶点不能被重复选择
代码实现:
public class primAlgorithm {
public static void main(String[] args) {
char[] data = new char[]{'A', 'B', 'C', 'D', 'E', 'F', 'G'};
//将不连通结点权值设为1000,避免找出最小权值时被比较
int[][] weight = new int[][]{
{1000, 5, 7, 1000, 1000,1000, 2},
{5, 1000, 1000, 9, 1000, 1000, 3},
{7, 1000, 1000, 1000, 8, 1000, 1000},
{1000, 9, 1000, 1000, 1000, 4, 1000},
{1000, 1000, 8, 1000, 1000, 5, 4},
{1000, 1000, 1000, 4, 5, 1000, 6},
{2, 3, 1000, 1000, 4, 6, 1000}
};