java:来自顺序的

时间:2017-03-02 14:30:04

标签: java parallel-processing breadth-first-search

我目前正在优化我的代码,我有这个广度优先的搜索算法,但它是一个顺序的,我想知道我是否可以使用执行程序服务并行运行,但保持算法简单。提前谢谢你

这是我的顺序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);
        }
    } 
}

0 个答案:

没有答案