一、邻接矩阵实现
思路:如果是邻接矩阵存储,设邻接矩阵为A,则A*A即为平方图,只需要矩阵相乘即可;
伪代码:
for i=1 to n
for j=1 to n
for k=1 to n
result[i][j]+=matrix[i][k]*matrix[k][j];
算法复杂度
两个n维数组相乘,因此复杂度为O(V^3),当然可以通过Strassen算法稍加改进.
扩展:这种方法的作用是比如求u到v路径长度为k的路径数目,只需要求A^k,然后[u][v]即可。
算法正确性分析
命题:给定两点i,j,i,j路径长度为r的路径

本文详细介绍了如何使用邻接矩阵来求解平方图,通过矩阵相乘的方法,算法复杂度为O(V^3),并利用数学归纳法证明了算法的正确性。输入复杂度主要由边的数量决定。
最低0.47元/天 解锁文章
484

被折叠的 条评论
为什么被折叠?



