Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 宽度优先搜索算法中队列的预期大小_Algorithm_Graph_Queue_Breadth First Search_Dijkstra - Fatal编程技术网

Algorithm 宽度优先搜索算法中队列的预期大小

Algorithm 宽度优先搜索算法中队列的预期大小,algorithm,graph,queue,breadth-first-search,dijkstra,Algorithm,Graph,Queue,Breadth First Search,Dijkstra,在未加权图上执行的最常见和最简单的操作之一是 留给实际实现的算法的一个方面是如何实现队列,尤其是它应该具有的容量。具体地说,对于具有N节点的给定图,如果分配一个具有容量N的队列,肯定不会因为队列已达到容量而需要重新分配队列,但是,如果N值足够高,则如果图的结构导致队列很少使用(例如,充满卷须的丝状图),尤其是如果BFS仅返回最大长度(如计算a所需的长度)或总长度,则可能会导致过多的RAM需求(如计算a所需) 在BFS算法中,基于给定图的某些属性(即使是预处理),是否有关于队列预期最佳大小的好文章

在未加权图上执行的最常见和最简单的操作之一是

留给实际实现的算法的一个方面是如何实现队列,尤其是它应该具有的容量。具体地说,对于具有
N
节点的给定图,如果分配一个具有容量
N
的队列,肯定不会因为队列已达到容量而需要重新分配队列,但是,如果
N
值足够高,则如果图的结构导致队列很少使用(例如,充满卷须的丝状图),尤其是如果BFS仅返回最大长度(如计算a所需的长度)或总长度,则可能会导致过多的RAM需求(如计算a所需)

在BFS算法中,基于给定图的某些属性(即使是预处理),是否有关于队列预期最佳大小的好文章

如果有,它是否可以推广到其他最短路径树算法,比如Dijkstra


让我的具体实现细节更具体一点,我正在研究一种使用as队列的rust算法。我不知道有任何更好的队列用于BFS,因为不需要排序等。

队列的最大大小=所有级别的一个级别中的最大节点数Shello@AbhinavMathur,您能进一步解释一下y是什么吗你的意思是?当然,一旦为给定的根计算了树,你就可以知道堆的最大大小,但在这一点上是无用的信息。更改根将更改堆的最大大小。如果你指的是最大节点度,那是不正确的:包含具有最大节点度的多个节点的图很容易e最大大小大于最大节点度的队列。我不是说最大节点度。无向图的一个级别中的最大节点数将是相同的,而不考虑根。如何定义一个级别中的节点数以及如何计算它?请看