我必须解决一个类似这样的问题:
我给了一个数字N来表示我拥有的点数。每个点具有两个坐标:X和Y如何使用堆来优化Prim的最小生成树算法?
我能找到用下列公式两个点之间的距离:
ABS(X2-X1)+ ABS(Y2-Y1),
( x1,y1)为第一点的坐标,(x2,y2)为第二点的坐标,绝对值为abs()
。
我必须找到最小生成树,这意味着我必须让所有的点与边的总和最小。 Prim的算法很好,但它太慢了。我读到,我可以使用heap使其更快,但我没有找到解释如何做到这一点的任何文章。
任何人都可以解释一下Prim的算法是如何处理堆的(一些示例代码会很好,但不是必须的),请问?
什么是_heap_? –
数据结构。 –
@ kiss-o-matic真的吗? –