堆结构与prim的

时间:2017-04-13 11:33:31

标签: algorithm structure heap prims-algorithm

我想问一下使用prim算法使用堆结构的兴趣是什么? 如在赋值中:“由于您实现的堆结构将用于Prim的算法” 谢谢 !

2 个答案:

答案 0 :(得分:0)

您需要某种形式的队列用于Prim的算法。您可以使用简单的集合并每次搜索下一个元素。另一种方法是拥有一个列表并在正确的位置插入所有新元素。

Prim的算法在队列中使用的操作非常快。

例如,您可以在固定时间内将新元素插入到Fibonacci堆(特殊类型的堆)中。

答案 1 :(得分:0)

Prim的算法类似于图遍历技术:BFS,(更确切地说它使用BFS)。 BFS中需要一个队列。

简单BFS所需的正常队列数据结构先进先出。对于Prim来说,需要修改队列的这种行为。

数据结构需要从它所拥有的元素中选择最小值元素,而不是先进先出。 Prim算法对底层数据结构所需的操作必须支持

  1. 新插入

  2. 对已放入数据结构的元素值的修改。

  3. 选择(并删除)数据结构中已包含的最少项目。

  4. Min-Heap 可以高效地实施这些操作。为简单起见,使用了二进制堆,为了提高效率,可以使用Fibonacci堆。