algorithm - 有向加权图的邻接矩阵与邻接表

标签 algorithm data-structures graph

作为练习,我必须构建一个卫星导航系统,该系统可以规划从一个位置到另一个位置的最短和最快的路线。它必须在不使用太多内存的情况下尽可能快。

我无法决定使用哪种结构来表示图形。我知道矩阵更适合密集图,列表更适合稀疏图。我更倾向于使用列表,因为我假设添加顶点将是该程序中最费力的部分。

我只是想听听你们的一些意见。如果我将典型的路线图视为一个图形,其中不同的位置是节点,道路是边缘。你认为它是稀疏的还是密集的?在这种情况下,哪种结构似乎更好?

最佳答案

我会选择列表,因为它只是 1 次投资。它的好处是它能够比矩阵更快地遍历所有相邻顶点,矩阵是大多数最短路径算法中重要且最频繁的步骤。

所以当矩阵是 O(N) 时,邻接列表只需要 O(k),其中 k 是相邻顶点的数量。

关于algorithm - 有向加权图的邻接矩阵与邻接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36725723/

相关文章:

c++ - 如何从大文本文件中选择行数?

arrays - 给定一个 bool 数组,选择随机 TRUE 值的索引的最有效方法是什么?

algorithm - 最小成本最大流量算法,专注于尽可能在所有边缘上均匀分配流量

matlab - 如何在 MATLAB 中绘制 3d 曲面图?

graph - 来自 Gnuplot 的相邻或并排图形 - Latex 终端

java - 按预定顺序为子树打印 ( )

ruby-on-rails - ruby 如何读取哈希

algorithm - 有哪些学习回溯、分支定界和动态规划算法的好资源?

java - 如何打印多维数组的所有索引?

list - Erlang 中的列表分区和拆分之间有什么区别吗?