BFS更好的参考地点?

时间:2018-02-15 08:47:52

标签: python caching garbage-collection breadth-first-search

我在geeksforgeeks上读到BFS用例之一是垃圾收集:

  

7)在垃圾收集中:广度优先搜索用于复制   使用Cheney算法进行垃圾收集。请参阅此内容   细节。广度优先搜索优先于深度优先搜索   因为更好的参考地点

让我思考......这种优势实施依赖于什么?更具体地说,图表表示依赖?以下是我对BFS更好地方的理解:

# Assume that node.neighbors is an "ArrayList"
for neighbor in node.neighbors: # BFS
    queue.append(neighbor)
# cache miss when reading the first element of the array
# cache hits when iterating the rest

for neighbor in node.neighbors: # DFS
    dfs(neighbor)
# worst case, with enough depth, it's possible that cache is full 
# when recursion returns (LRU), which means cache miss for every neighbor

但是,如果node.neighbors是一个LinkedList (我发现很多邻接列表示例都是如此),那么BFS是否仍然拥有更好的局部性(我能想到的另一件事)是BFS使用queue,但我不知道如何推断它对地方的贡献? enter image description here

0 个答案:

没有答案