作为一项练习,我必须建立一个卫星导航系统,计划从一个地方到另一个地点的最短和最快路线。它必须尽可能快地在没有使用太多内存的情况下制作它。
我无法决定使用哪种结构来表示图表。我知道矩阵对于密集图更好,并且列表对于稀疏图更好。我更倾向于使用列表,因为我假设添加顶点将是此程序中最费力的部分。
我只是想让你的一些人'意见。如果我将典型的道路地图视为一个图形,其中各个位置是节点,道路是边缘。你会认为它稀疏或密集吗?在这种情况下哪种结构看起来更好?
答案 0 :(得分:2)
我会选择名单,因为它只有一次投资。它的优点在于它能够比矩阵更快地迭代所有相邻顶点,这是大多数最短路径算法中重要且最常见的步骤。
所以矩阵是O(N)邻接列表只有O(k),其中k是相邻顶点的数量。