图中唯一的节点对
Unique pair of nodes in graph
我有一个图,其中包含节点 A、B、C 以及这些节点之间的多条边。
如何获得唯一的对 (A, B), (A, C), (B, C)?
一种算法可以说
alreadyVisited = [];
for left in nodes:
for right in nodes:
if (left, right) not in alreadyVisited:
alreadyVisited.push((left, right))
..
但这是实现此目标的最有效算法吗?
您可以迭代节点并在嵌套循环中仅迭代其余节点。
var nodes = ['A', 'B', 'C'],
i, j,
edges = [];
for (i = 0; i < nodes.length - 1; i++) {
for (j = i + 1; j < nodes.length; j++) {
edges.push([nodes[i], nodes[j]]);
}
}
console.log(edges);
我有一个图,其中包含节点 A、B、C 以及这些节点之间的多条边。
如何获得唯一的对 (A, B), (A, C), (B, C)?
一种算法可以说
alreadyVisited = [];
for left in nodes:
for right in nodes:
if (left, right) not in alreadyVisited:
alreadyVisited.push((left, right))
..
但这是实现此目标的最有效算法吗?
您可以迭代节点并在嵌套循环中仅迭代其余节点。
var nodes = ['A', 'B', 'C'],
i, j,
edges = [];
for (i = 0; i < nodes.length - 1; i++) {
for (j = i + 1; j < nodes.length; j++) {
edges.push([nodes[i], nodes[j]]);
}
}
console.log(edges);