问题描述:在一个按照东西和南北方向划分成规整街区的城市里,n个居民点散乱地分布在不同的街区中。用x坐标表示东西向,用y坐标表示南北向。各居民点的位置可以由坐标(x,y)表示。
要求:为建邮局选址,使得n个居民点到邮局之距离的总和最小。
提示:带权中位数(分治算法)
package postaddress;
import java.util.Scanner;
import java.io.*;
public class PostAddress {
public static void main(String[] args) throws Exception {
while(true){
//选择要输入的测试数据文件的编号
System.out.println("请输入数据文件编号(1~5):");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
if(num<=0 || num>=6){
System.out.println("编号错误请重新输入(1~5)!");
continue;
}
//读取数据
FileReader fr = new FileReader("D:\\Program Files (x86)\\MyStudy\\src\\postaddress\\input\\input_assign01_0"+num+".dat");
BufferedReader br = new BufferedReader(fr);
String s = null;
int size = Integer.parseInt(br.readLine());
//定义居民点坐标及对应的权重
int[