问题描述:
在一个按照东西和南北方向划分成规整街区的城市里,n个居民点散乱地分布在不同的街区中。用x 坐标表示东西向,用y坐标表示南北向。各居民点的位置可以由坐标(x,y)表示。街区中任意2 点(x1,y1)和(x2,y2)之间的距离可以用数值∣x1−x2∣+∣y1−y2∣度量。
居民们希望在城市中选择建立邮局的最佳位置,使n个居民点到邮局的距离总和最小。
编程任务:
给定n 个居民点的位置,编程计算邮局的最佳位置。
输入格式:
输出格式:
输入样例:
5
1 2
2 2
1 3
3 -2
3 3
输出样例:
(2,2)
这题的本质是寻找中位数,对于数组长度为奇数的数组,就是寻找最中间,对于数组长度为偶数的数组,我们规定取坐标为n/2-1的数为答案(数组下标从0开始,其实大小处于a[n/2-1]和a[n/2]之间的都满足要求),在这之前需要我们使用快排整理数组。