我有(3x4)M矩阵连接“1”(连接4“北,南,东,西”),说:
M=[0 1 1 1;
1 1 0 1;
0 1 0 1];
带索引元素的:idx = 2 4 5 6 7 10 11 12; (8个要素)。 M可以被视为黑白像素的矩阵。
任何想法解决其(8x8)D矩阵的白色像素分离? (探索:idx = 2和12的元素相隔6步=由5个白色像素分隔)
D=[0 2 1 2 3 4 5 6;
2 0 1 2 3 4 5 6;
1 1 0 1 2 3 4 5;
2 2 1 0 1 2 3 4;
3 3 2 1 0 1 2 3;
4 4 3 2 1 0 1 2;
5 5 4 3 2 1 0 1;
6 6 5 4 3 2 1 0]
答案 0 :(得分:0)
制作一个图表,其中节点是非零元素,边连接相邻元素。您的示例的邻接列表(连接边列表):
2-5
4-7, 4-5
5-2, 5-4, 5-6
6-5
and so on
然后使用任何算法查找所有节点之间的所有最短路径。
Breadth-first search允许从第一个节点找到所有最短路径,然后从第二个节点找到所有最短路径,依此类推。复杂度O(V * E)。这里E~V,所以O(V ^ 2)
Floyd-Warshall algorithm非常简单 - 3-4行代码。 O(V ^ 3) - 它用于加权图。