我需要构建一个图表并尝试决定如何(最小时间复杂度)。
根据我的理解,有两种常用的方法来存储图表的数据:adjacency_list和adjacency_matrix。
图表的声明是(例如,未定向):
typedef adjacency_list <vecS, vecS, undirectedS> UGraph; // In case of adjacency_list
typedef adjacency_matrix<undirectedS> UGraph; // In case of adjacency_matrix
两种情况都使用函数add_edge(v1,v2,UGraph)
在两个顶点之间添加边。
所以我的问题是哪种模型会使add_edge
更便宜 - 时间复杂的方式和原因?
我尝试阅读有关add_edge
时间复杂度的this解释,但此解释是关于OutEdgeList
。所以它让我很困惑。
add_edge
哪个型号的价格更便宜?为什么?
答案 0 :(得分:0)
所以我的问题是哪个数据库会使add_edge变得更便宜 - 时间复杂度和原因?
与邻接列表相比,矩阵中的速度更快(O(1)),在邻接列表中,您需要遍历附加到特定顶点的整个列表以添加边缘。