问题描述
老板最近给了我一个空间数据压缩包,压缩包中包含10个文件,每一个文件中包含ID、X坐标、Y坐标、元素一、元素二五种标签,每个大约包含四百万条数据。老板对我提出的要求是以一个文件的XY坐标为准,找出其他九个文件中与其最相近的坐标,将相近坐标的两个元素复制到标准文件中。
ID | X | Y | 元素一 | 元素二 |
---|
菜鸟级想法
当时听到这个要求是,脑海中立马跳出一个想法,将标准文件的XY坐标与比较文件的所有XY坐标进行求距离得到最小值就OK了嘛。想法很美好,结果很现实,写了个matlab函数进行操作结果5个小时没搞出来,这个算法的时间复杂度为 0(n2) 0 ( n 2 ) ,n为百万级单位,在我的小破笔记本上短时间计算出来好比中国足球在世界杯拿冠军。
distance=(xi−xj