1

其中最有效的数据结构是什么:

  • 边缘列表
  • 邻接表
  • 邻接矩阵

用于执行 Prim-Jarnik 算法,为什么?

4

1 回答 1

1

通过边缘列表,我想您的意思是图 G 中所有边缘的列表?然后这是三个中最慢的,因为每次您在顶点 u 时都需要遍历整个列表才能知道 G 中有哪些 (u, v) 对。邻接矩阵比这要快一些,但仍然很慢因为您需要遍历矩阵的整行来找到相邻的顶点和各自的边权重。但是如果你有一个稠密的图,邻接矩阵就像一个邻接表。假设一个不那么密集的图,邻接列表是更快的,这样遍历列表并不比直接访问矩阵行中的每一列更昂贵。

也就是说,Prim 算法的关键问题其实不是这个。为了实现其描述的计算复杂性,您需要使用优先级队列(这是您应该关注的部分)。

于 2012-12-04T01:50:49.007 回答