kd-tree详解

kd-tree是一种数据结构,主要用于二维平面中最近点对的操作,如动态维护、查询等,支持曼哈顿距离和欧几里德距离。曼哈顿距离是沿网格线的总距离,而欧式距离是两点间的直线距离。kd-tree通过递归地按坐标轴划分空间,实现高效查找。在随机数据中,插入和查询的时间复杂度约为O(log N),但在构造数据中可能达到O(sqrt(N))。推荐练习题目:bzoj2648、bzoj2716、bzoj3053。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

kd-tree适用的范围

        二维平面最近点对之间的操作,动态维护、询问、查询等。包括曼哈顿距离和欧几里德距离。

曼哈顿距离和欧几里德距离:

1.曼哈顿距离

曼哈顿距离又称Manhattan distance,还见到过更加形象的,叫出租车距离的。具体贴一张图,应该就能明白。

上图摘自维基百科,红蓝黄皆为曼哈顿距离,绿色为欧式距离。


2.欧式距离

欧式距离又称欧几里得距离欧几里得度量Euclidean Metric),以空间为基准的两点之间最短距离,只算在空间下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值