用python写一个prim算法
时间: 2023-02-27 08:47:06 浏览: 85
prim算法 python 代码实现
Prim算法是一种用于计算最小生成树的算法,它通过不断找到最小边来不断扩展生成树,从而找到整张图的最小生成树。下面是一种用Python实现Prim算法的方法:
1. 初始化:将图的某一个顶点作为起点,并将其加入生成树中。
2. 找到最小边:在剩下的顶点中找到一条连接已加入生成树的顶点和未加入生成树的顶点的边,并将该顶点加入生成树中。
3. 重复步骤2,直到所有的顶点都加入生成树为止。
下面是一个简单的Prim算法的Python代码实现:
```
import sys
class Prim:
def __init__(self, graph):
self.graph = graph
self.V = len(graph)
self.mst = [False] * self.V
self.key = [sys.maxsize] * self.V
self.parent = [None] * self.V
def primMST(self):
self.key[0] = 0
self.parent[0] = -1
for i in range(self.V):
u = self.minKey()
self.mst[u] = True
for v in range(self.V):
if self.graph[u][v] > 0 and self.mst[v] == False and self.key[v] > self.graph[u][v]:
self.key[v] = self.graph[u][v]
self.parent[v] = u
def minKey(self):
min = sys.maxsize
min_index = 0
for v in range(self.V):
if self.mst[v] == False and self.key[v] < min:
min = self.key[v]
min_index = v
return min_index
def printMST(self):
for i in range(1, self.V):
print("%d - %d: %d" % (self.parent[i], i, self.graph[i][self.parent[i]]))
```
用
阅读全文