摘要: 上一篇谈到了求最短路和最短路距离matrix的问题。这里简要记录下如何根据adjacency matrix 和Distance Matrix 求最短路径中每一个节点。 for (int i = 0; i < n; ++i) { next[i][i] = i; for (int j = 0; j < n; ++j) { if (i != j) { next[i][j] = -1; for (int k : adjList[i]) { if (distMatrix[i][j] == distMatrix[k][j] + 1) next[i][j] = k; } } } 阅读全文
posted @ 2011-02-12 04:56 cactuswisper 阅读(193) 评论(0) 推荐(0)
摘要: 在比较简单的情况下,当单条路径的距离固定为一的时候(比如计算分子中各个原子的距离)可以用表格来处理。只需要adjacency matrix. private static int[][] doDijkstra(int[][] adjList) { int n = adjList.length; int[][] distMatrix = new int[n][n]; for (int i = 0; i < n; ++i) { //对于列表中的每一行 for (int j = 0; j < n; ++j) //距离先设为无限大 distMatrix[i][j] = 阅读全文
posted @ 2011-02-12 04:36 cactuswisper 阅读(718) 评论(0) 推荐(0)