用于计算所有邮政编码均在x英里范围内的最小邮政编码集的功能

时间:2011-09-30 04:23:11

标签: google-maps map geolocation coordinates zipcode

我需要一个函数(在任何语言中,但最好是一个脚本),它可以获取具有纬度/经度坐标的对象数组(比如说zipcodes),并返回原始数组的所有元素都在x内的最小子集(比如说)20英里至少有一个子集的成员。

1 个答案:

答案 0 :(得分:1)

这是一个让你入门的贪婪算法。

  
      
  1. 以空结果集 R 开头,让 S 成为所有zipcodes的集合。
  2.   
  3. 对于 S 中的每个邮政编码 Zn ,计算 Zn Vn >
  4.   
  5. 找到包含最多元素的 Vmax 集合 - 将相应的邮政编码 Zmax 添加到结果集 R 中,并删除所有元素来自 S Vmax
  6.   
  7. 使用 S 中的其余元素,从步骤2开始重复,直到 S 为空。然后最后一组是 R
  8.