下面Floyd算法程序的时间复杂度为( )。
1 #include <iostream> 2 using namespace std; 3 4 #define N 21 5 #define INF 99999999 6 int map[N][N]; 7 int main() { 8 int n, m, t1, t2, t3; 9 cin >> n >> m; 10 for (int i = 1; i <= n; i++) { 11 for (int j = 1; j <= n; j++) { 12 if (i == j) 13 map[i][j] = 0; 14 else 15 map[i][j] = INF; 16 } 17 } 18 for (int i = 1; i <= m; i++) { 19 cin >> t1 >> t2 >> t3; 20 map[t1][t2] = t3; 21 } 22 for (int k = 1; k <= n; k++) 23 for (int i = 1; i <= n; i++) 24 for (int j = 1; j <= n; j++) 25 if (map[i][j] > map[i][k] + map[k][j]) 26 ________; // 在此处填入选项 27 for (int i = 1; i <= n; i++) { 28 for (int j = 1; j <= n; j++) { 29 cout.width(4); 30 cout << map[i][j]; 31 } 32 cout << endl; 33 } 34 }
O(N)
O(N2)
O(N3)
O(N2logN)