gpt4 book ai didi

algorithm - Floyd Warshall 复杂性

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:59:48 26 4
gpt4 key购买 nike

有人可以告诉我这个过程在 for 迭代中的时间复杂度吗?这段代码是FloydWarshall算法的“重构路径”部分。prev[n][n]是最短路径中源节点和目的节点之间的节点矩阵。printAllSP 在迭代中运行 n^2 次,我无法真正弄清楚的是它每次执行的递归调用次数,只知道这取决于 i 值 (max n)、j 值 (max n) 和插入 i 和 j 之间最短路径的 k (???) 节点数,根据我的评估,包括 for 循环,这部分在 On^4 中运行,但总算法复杂度为 On^3。请启发我!

 void PrintAllSP(int i, int j, int prev[n][n]){
if (i == j)
print i
else {
PrintAllSP(i, prev[i][j], prev);
print j
}
}

//PSEUDOPART OF MAIN
for i = 1 TO n
for j = 1 TO n
PrintAllSP(i, j, prev);
}
}

最佳答案

总共有 n 个节点,这意味着打印了 O(n^2) 个最短路径。每条最短路径最多只能有 n 个节点。因此,只能打印O(n^3) 个节点。由于每个基本递归步骤都会导致打印一个节点,这意味着总共只有 O(n^3) 个基本递归步骤。

关于algorithm - Floyd Warshall 复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24919384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com