浅谈KD-Tree

前言

K D − T r e e KD-Tree KDTree是一个十分神奇的东西,其实本质上类似于一个 K K K维的二叉搜索树

L i n k Link Link

二叉搜索树 详见博客 二叉搜索树(BST)学习笔记


核心思想

K D − T r e e KD-Tree KDTree的核心思想与 B S T BST BST是差不多的(插入等操作也都基本上一样)。

唯一的区别就在于,它每次比较的是某一维度上的值。

但是,与 B S T BST BST一样, K D − T r e e KD-Tree KDTree也有可能会在某些情况下退化成一条链

怎么办呢?

呃, B S T BST BST平衡树,我们的 K D − T r e e KD-Tree KDTree有… …

平衡KD-Tree(不存在的)

其实,我们可以采用替罪羊树的思想,对不平衡的子树直接重构

L i n k Link Link

替罪羊树 详见博客 简析平衡树(一)——替罪羊树 Scapegoat Tree

这样就能使复杂度较为稳定了。


K D − T r e e KD-Tree KDTree有什么用?

呃,话说 K D − T r e e KD-Tree KDTree有什么用?

其实 K D − T r e e KD-Tree KDTree的主要应用如下:

所以,其实 K D − T r e e KD-Tree KDTree还是有很多用途的。

L i n k Link Link

【BZOJ2648】SJY摆棋子 的题解 详见博客 【BZOJ2648】SJY摆棋子(KD-Tree)


后记

K D − T r e e KD-Tree KDTree的某些用法还是非常玄学的,强烈推荐去做一做文中提到的【BZOJ2648】SJY摆棋子一题,毕竟我是看到它是模板题才去做的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值