关闭

Warshall算法求道路矩阵

标签: Warshall
801人阅读 评论(0) 收藏 举报
分类:

输入有向图的邻接矩阵,Warshall算法求道路矩阵。

第i次循环将第i行叠加到第j行的非零元对应的行。

时间复杂度从O(n^4)降到O(n^3)。

#include <iostream>
using namespace std;
const int maxn = 10;
bool P[maxn][maxn];

int main () {
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            cin >> P[i][j];                     //邻接矩阵

    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            for (int k = 0; k < n; k++)
                P[j][k] += P[j][i] * P[i][k];

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            cout << P[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:18950次
    • 积分:515
    • 等级:
    • 排名:千里之外
    • 原创:32篇
    • 转载:0篇
    • 译文:0篇
    • 评论:5条
    文章分类
    最新评论