关于曼哈顿距离

 

曼哈顿距离是什么-->http://zh.wikipedia.org/zh-hant/%E6%9B%BC%E5%93%88%E9%A0%93%E8%B7%9D%E9%9B%A2

经过冗长的推导会发现这个等式成立

d=|x1-x2|+|y1-y2|

=max{(x1+x2)-(y1+y2) , (x1-x2)-(y1-y2) , (-x1+x2)-(-y1+y2) , (-x1-x2)-(-y1-y2)}

计算两点间的曼哈顿距离,这式子完全没用,但是,给定N个点,求他们的最大哈密顿点对是,就很好用了。

朴素方法算复杂度是O(N2),而利用这个式子复杂度为O(N*2k),k是维度,上面写的是2维的情况,高维情况类比可得。