Prim算法
应用场景是主要是找到一个无向连通图的最小生成树,即连接所有节点且权重总和最小的树
// prim三部曲
// 1, 找到距离当前最小树最近节点
// 2,节点入树
// 3,更新mindist// 更新树
func updateMinDist(edges [][]int, node int) {for _, edge := range edges {if edge[0] == node && edge[2] < minDist[edge[1]]{ // 直连当前节点,并且距离更短minDist[edge[1]] = edge[2]}}
}// 找到不在树中的最近节点
func GetMinNode() int {var minVal int = math.MaxIntvar minNode int = -1 // 特殊标记一下,如果没有找到最近节点,说明树已经遍历完成for i, v := range minDist {if !used[i] && v < minVal {minVal = vminNode = i}}return minNode
}