14、数据结构中的树与二分图

数据结构中的树与二分图

在数据结构和算法领域,树和二分图是非常重要的概念,它们在许多实际应用中都发挥着关键作用。下面将详细介绍kd - 树和二分图的相关知识。

1. kd - 树

kd - 树(k - dimensional tree)是一种用于组织k维空间$R^k$中数据点的数据结构。

1.1 中位数的定义

对于长度为n的数字序列s,其中位数是第$\lfloor\frac{n}{2}\rfloor$小的数。例如,对于序列s = (1, 4, 7, 8, 9),由于长度n = 5,中位数是第$\lfloor\frac{5}{2}\rfloor$ = 3小的数,即7;对于序列t = (1, 5, 8, 10),中位数是第2个元素,即5。如果序列是有序的,那么可以在常数时间内找到中位数。

1.2 kd - 树的构建

kd - 树的叶子节点表示$R^k$中的点,每个非叶子节点表示一个超平面,该超平面将$R^k$划分为两个半空间。划分超平面是循环选择的,沿着树向下移动时,会循环使用定义划分平面的轴。

例如,在二维平面中,根节点的划分是x轴对齐的:
$R_x^a = {(x, y) \in R^2 | x \leq a}$
根节点子节点的划分是y轴对齐的:
$R_y^b = {(x, y) \in R^2 | y \leq b}$
子节点的子节点又会是x轴对齐的,依此类推。

以下是一个二维平面上构建kd - 树的示例:
设P是二维平面$R^2$上的一组点:
$P = {(8, 5), (7, 2), (9, 11), (4,

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值