Algorithm 迪克斯特拉';s将图形存储在文本文件中
我想知道,在实现Dijkstra算法时,将图形存储在文本文件中最有效的方法是什么?(邻接矩阵、关联矩阵?等)在一般情况下,一个好的方法是存储所有边的列表。 它需要Algorithm 迪克斯特拉';s将图形存储在文本文件中,algorithm,matrix,store,dijkstra,Algorithm,Matrix,Store,Dijkstra,我想知道,在实现Dijkstra算法时,将图形存储在文本文件中最有效的方法是什么?(邻接矩阵、关联矩阵?等)在一般情况下,一个好的方法是存储所有边的列表。 它需要O(E)空间:我们在每条边上存储两个端点。 把它存储在磁盘上就足够了 为了处理这样的列表,它通常作为V邻接列表存储在内存中,每个顶点一个。 如果图形是无向的,则复制每条边(u->v和v->u)。 然而,图算法的一个常见操作是遍历给定顶点的所有边。 通过为每个顶点存储一个邻接列表,我们可以在O(邻居数)中实现这一点,这是最好的选择 邻接矩
O(E)
空间:我们在每条边上存储两个端点。
把它存储在磁盘上就足够了
为了处理这样的列表,它通常作为V
邻接列表存储在内存中,每个顶点一个。
如果图形是无向的,则复制每条边(u->v
和v->u
)。
然而,图算法的一个常见操作是遍历给定顶点的所有边。
通过为每个顶点存储一个邻接列表,我们可以在O(邻居数)
中实现这一点,这是最好的选择
邻接矩阵采用O(V^2)
空间,这对于稠密图可能很好,但在一般情况下比O(E)
差
关联矩阵占用了O(VE)
空间,并且效率不高,除非您的图形非常特殊,可以这样做
Dijkstra算法的最快实现需要O(E log V)
时间,因此O(E)
内存通常是很好的