algorithm - 关联矩阵而不是邻接矩阵

标签 algorithm math data-structures graph big-o

使用关联矩阵数据结构而不是更广泛的邻接矩阵可以更快地解决图上的哪种问题(就大 O 而言)?

最佳答案

结构的空间复杂度是:

邻接:O(V^2) 发生率:O(VE)

结果是,如果顶点比边多得多,则关联结构可以节省空间。

可以看看一些典型的图操作的时间复杂度:

找到与一个顶点相邻的所有顶点: 调整:O(V) 公司:O(VE)

检查两个顶点是否相邻: 调整:O(1) 公司:O(E)

计算顶点的价数: 调整:O(V) 公司:O(E)

等等。对于任何给定的算法,您都可以使用上述构建 block 来计算哪种表示可以为您提供更好的整体时间复杂度。

作为最后一点,使用任何类型的矩阵对于除了最密集的图形之外的所有图形来说都是极其低效的空间,我建议不要使用任何一种,除非你有意识地放弃了邻接列表等替代方案。

关于algorithm - 关联矩阵而不是邻接矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3667714/

相关文章:

c# - 如何处理动态放置标签的重叠

javascript - 如何以方形图案移动对象?

javascript - 颜色从蓝色跳到紫色

math - 肯定包含给定点列表的球体 [点具有 x、y 和 z 坐标]

java - 具有恒定大小操作的线程安全 NavigableSet?

arrays - 给定一个二维矩阵,其中每列占用的 block 范围,找到每行占用的 block 数

algorithm - 使用 Master 方法求解递推关系 -> T(n) = 2T(n/2) + n^2 当 n 为偶数时,T(n) = 2T(n/2) + n^3 当 n 为奇数时

c - 使用链表写入/读取文件

java - 无法弄清楚为什么我的选择排序作为 java 方法的实现不能按预期工作

c# - 在图像或笛卡尔平面中寻找负空间