BFS:有没有什么方法可以让怪物变得怪异?#34;?

时间:2017-05-24 13:36:48

标签: algorithm graph-theory breadth-first-search

Eccentricity是最短协作距离中的最大值。

图表由Adjacent List组成。

这是我在Java中实施的方式:

  public int eccentricity(String start) {
    Queue<String> queue = new ArrayDeque<String>();
    queue.add(start);

    HashMap<String, Boolean> visitedChecker = new HashMap<String, Boolean>();
    visitedChecker.put(start, true);

    // Init distanceHistory
    HashMap<String, Integer> distanceHistory = new HashMap<String, Integer>();
    distanceHistory.put(start, 0);

    int eccen = 0;

    while(!queue.isEmpty()) {
      String vertex = queue.poll();

      HashSet<String> neighbors = Graph.get(vertex);
      for (String neighbor: neighbors) {
        if (visitedChecker.get(neighbor) == null) {
          visitedChecker.put(neighbor, true);
          eccen = distanceHistory.get(vertex) + 1;
          distanceHistory.put(neighbor, eccen);
          queue.add(neighbor);
        }
      }
    }
    return eccen;
  }

但是这段代码的问题很慢!......(比最快的一个慢约3倍)

但我认为没有什么可以使我的代码更快......

我认为Adjcent matrix不会让它更快......

有什么想法吗?我错过了什么吗?

0 个答案:

没有答案