问答题 阅读下列说明,回答下面问题。
[说明]
现需在某城市中选择一个社区建一个大型超市,使该城市的其他社区到该超市的距离总和最小。用图模型表示该城市的地图,其中顶点表示社区,边表示社区间的路线,边上的权重表示该路线的长度。现设计一个算法来找到该大型超市的最佳位置:即在给定图中选择一个顶点,使该顶点到其他各项点的最短路径之和最小。算法首先需要求出每个顶点到其他任一顶点的最短路径,即需要计算任意两个顶点之间的最短路径;然后对每个顶点,计算其他各项点到该顶点的最短路径之和;最后,选择最短路径之和最小的顶点作为建大型超市的最佳位置。
问答题 本题采用Floyd-Warshall算法求解任意两个顶点之间的最短路径。已知图G的顶点集合为V={1,2,…,n},W={W ij } n*n 为权重矩阵。设d (k) ij =从顶点i到顶点j的一条最短路径的权重。当k=0时,不存在中间顶点,因此d (0) ij =w ij ;当k>0时,该最短路径上所有的中间顶点均属于集合{1,2,…,k},若中间顶点包括顶点k,则d (k) ij =d (k-1) ik +d (k-1) kj ,若中间顶点不包括顶点则d (k-1) ij =d (k-1) i ,于是得到如下递归式。

因为对于任意路径,所有的中间顶点都在集合{1,2,…,n}内,因此矩阵D (n) ={d (n) ij } n*n 给出了任意两个顶点之间的最短路径,即对所有i,j∈V,d (n) ij 表示顶点i到顶点j的最短路径。
下面是求解该问题的伪代码,请填充其中空缺处。伪代码中的主要变量说明如下。
W:权重矩阵
n:图的顶点个数
SP:最短路径权重之和数组,SP[i]表示顶点i到其他各顶点的最短路径权重之和,i从1到n
min SP:最小的最短路径权重之和
min v:具有最小的最短路径权重之和的顶点
i:循环控制变量
i:循环控制变量
k:循环控制变量
LOCATE -SHOPPINGNALL(W, n)
D (0) =W
for ______
for i=0 to n
for j =1 to n
if
【正确答案】
【答案解析】k=1 to n



min_v=1
min_v 本题考查的是算法的设计和分析技术。
本问题考查算法流程。第1空表示主循环,k是循环控制变量,故第1空填k=1 to n。第2和3空根据题意和递归式,可分别得到答案为 。计算了任意两个顶点之间的最短路径之后,对每个顶点,开始统计其到所有其他顶点的最短路径之和,因此第4空填
问答题 第1题中伪代码的时间复杂度为______(用O符号表示)。
【正确答案】
【答案解析】O(n 3 ) 本问题考查第1题中的伪代码第2~8行,计算任意两点之间的最短路径,有三重循环,故时间复杂度为O(n 3 )。第9~12行,计算每个点到任意其他点的最短路径之和,有两重循环,故时间复杂度为O(n 2 )。第15~18行,在所有点的最短路径之和中找到最小的最短路径之和,时间复杂度为O(n)。故算法总的时间复杂度为O(n 3 )。