概念辨析
1、數學中最常見的歐氏距離
2、曼哈頓距離
他表示的點如下圖
3、切比雪夫距離
他表示的點如下圖
由圖可以感覺曼哈頓距離和切比雪夫距離有一定的相似性
曼哈頓距離和切比雪夫距離的轉化(45度旋轉)
看著有點繁瑣。
事實上:
將一個點 ( x , y ) 的座標變為 ( x + y , x − y ) 後,原座標系中的曼哈頓距離 = 新座標系中的切比雪夫距離
將一個點 ( x , y ) 的座標變為 ( (x + y )/ 2 , ( x - y ) / 2 ) 後,原座標系中的切比雪夫距離 = 新座標系中的曼哈頓距離 (由上一行式子逆推)。
作用
在程式碼程式中我們要求切比雪夫距離時往往要進行 max 操作 , 這對於程式來說並不好最佳化 ,例如:對於一點來說,我們要求它到其餘點的切比雪夫距離 和。此時的暴力的時間複雜度為O(n^2)。
而曼哈頓距離 只有求和和取絕對值兩種操作 , 我們把座標排序後可以去掉絕對值的影響,進而用字首和最佳化,可以把複雜度降為 O ( n )。