设x1a)设计一个有效的算法,以最小化村庄和邮局之间的平均距离来寻找邮局的位置。
我写了这个算法谁能检查一下它是否正确?
Algorithm PostOffice(P)
m <- (x1+xn) / 2
i <- 1
while xi < m do
i <- i+1
if xi - x1 < xn - xi-1
return xi
else return xi-1
最佳答案
如果我们必须在每次访问中返回邮局,可以通过以下方法找到最佳位置。如果存在奇数个点,则最佳位置是按排序顺序排列的中间点否则,按输入排序在中间的两点之间的所有点都是最优的这个问题称为1-中值问题。
注:我认为这不是问题所在,但如果邮递员从邮局出发,到各个城市,最后又回到邮局,那么最小和最大点之间的每一点都是最优的。成本等于2*(X_max - X_min)