Transitive Closure of a Graph in Java2025年3月29日 | 阅读 4 分钟 有向图的传递闭包是一个可达性矩阵,它显示了任意两个顶点之间是否存在路径。当存在从顶点 u 到顶点 v 的路径时,闭包将设置 reach[u][v] = 1;否则,reach[u][v] = 0。传递闭包被广泛应用于许多领域,包括:图论、数据库管理和查询处理以及程序分析。 问题概述有向图是一组顶点,其中一些顶点由有向弧连接。该图的传递闭包是一个矩阵,它至少确定了两个顶点是直接相邻还是通过其他顶点相邻。 例如,在具有顶点 A、B 和 C 的图中,如果存在从 A 到 B 的路径且存在从 B 到 C 的路径,那么在传递闭包中,应该存在从 A 到 C 的路径。 Floyd-Warshall 算法Floyd-Warshall 算法是一个所有顶点对的最短路径算法。然而,当用于传递闭包时,它可以在找到最短路径的同时,判断任意两个顶点 s 和 t 之间是否存在路径。 这是一种特殊的算法,它倾向于通过逐步生成或增强可达性矩阵。在这种情况下,对于任意两个顶点,例如“i”和“j”,我们会查看是否存在某个顶点“k”可以连接“i”和“j”。 算法步骤
文件名:TransitiveClosure.java 输出 Transitive closure matrix is: 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 解释
注意事项和边缘情况不连通图:如果给定图中的某些顶点无法通过一个或多个顶点与其他顶点连通,则传递闭包矩阵中该顶点对的条目将保持为零。 自环:即,如果顶点 z 有一个自环,它也会反映在 graph[i][i] 中,其中 i 是其列表中的顶点编号。Floyd-Warshall 算法在这种情况下工作得非常好。 效率和性能时间复杂度:O(V ^ 3),其中 V 是给定图的顶点数。 空间复杂度:O(V^2) 结论总之,可以看出传递闭包在分析有向图中顶点之间的连通性方面起着至关重要的作用。通过 Floyd-Warshall 算法,我们可以计算传递闭包并将其表示为矩阵,其中元素表示两个顶点是直接连接还是间接连接。 构建该结构所需的空间和时间限制使得该算法特别适用于所谓的“小世界”图,即顶点数量较少;O(V³) 的范围;对于大型稀疏图,还有其他更有效的方法。 由于其在数据库查询、网络、程序分析等各个领域的广泛应用,该技术是图论中的一个重要讨论话题。 下一主题Java 测试工具 |
这是 Google、Amazon、TCS、Accenture、Flipkart 等顶级 IT 公司面试中经常提出的问题。通过解决问题,人们希望检查应聘者的逻辑能力、批判性思维和解决问题的能力。因此,在本节中,我们将...
阅读 8 分钟
一个称为“好数”的特殊数学概念指的是每个数字都大于其右侧数字之和的数字。在此练习中,我们负责在 [L, R] 范围内查找并打印所有好数,同时省略任何...
5 分钟阅读
在面向对象编程的领域,不可变性是一个强大的概念,可以提高代码的健壮性、线程安全性和整体程序稳定性。不可变类是指其实例在创建后无法修改的类。虽然不可变性带来了许多优势,但在某些情况下我们需要处理...
7 分钟阅读
平衡括号问题是常见的编程问题之一,也称为平衡括号。这个问题通常由面试官提出,我们需要验证给定字符串中的括号是否平衡。诸如“(”、“)”之类的字符……
阅读 12 分钟
这是 Google、Amazon、TCS、Accenture 等顶级 IT 公司面试中经常遇到的问题。通过解决这个问题,人们想检查应试者的逻辑能力、批判性思维和解决问题的能力。因此,在本节中,我们将找出...
5 分钟阅读
数字签名是一种验证数字消息和文档权威性的机制。它因提供比其他签名更高的安全性而非常受欢迎。在 Java 中,使用 JDK 安全 API 来创建和实现数字签名。在本节中,我们将...
阅读 12 分钟
Java 不提供直接获取数组输入的方法。但是,我们可以使用 Scanner 类的函数来获取数组输入。要输入一个数组,我们必须询问用户数组的长度。之后,我们...
阅读 4 分钟
计算一个数字的倒数幂提供了一种迷人的算术和数值探索的融合。这个有趣的挑战激发了人们对数字及其倒数之间相互作用的好奇心,突出了数学模式和关系的优美。问题陈述:给出了一个数字 P...
阅读 4 分钟
格里高利历仍然是当今使用最广泛的历法。它取代了自公元前 45 年以来一直在使用的儒略历,并于 1582 年由教皇格里高利十三世采用。格里高利历是阳历,这意味着它...
阅读 2 分钟
这是谷歌、微软、TCS、Accenture 等著名 IT 公司通常在招聘面试中提出的问题。通过找出解决方案,可以评估面试者的逻辑推理、批判性思维和解决问题的能力。在本节中,我们将创建一个...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India