我目前正在优化我的代码,我有这个广度优先的搜索算法,但它是一个顺序的,我想知道我是否可以使用执行程序服务并行运行,但保持算法简单。提前谢谢你
这是我的顺序BFS
public void bfs(int rootNode, isvisited visitor)
{
// BFS uses Queue data structure
Queue<Integer> q = new LinkedList<Integer>();
int currentLevel = 0;
q.add(rootNode);
visitor.visit(rootNode, currentLevel);
while (!q.isEmpty())
{
currentLevel++;
Set<Integer> nextNodes = new LinkedHashSet<Integer>();
q.forEach(currNode ->nextNodes.addAll(outgoingNeighbors(currNode)));
q.clear();
for (int child : nextNodes)
{
visitor.visit(child, currentLevel);
q.add(child);
}
}
}