设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)

07-24 09:39