阅读:Quad Trees A Data Structure for Retrieval on Composite Keys

四叉树是一种适用于复合键检索的数据结构,尤其在二维空间中表现优秀。文章探讨了四叉树的插入、优化算法和搜索操作,其中插入的平均时间为树大小的对数。虽然四叉树在范围查询上表现出高效性,但在删除和合并操作上存在挑战。
摘要由CSDN通过智能技术生成

论文地址:Quad Trees
A Data Structure for Retrieval on Composite Keys

Summary

quad tree 是适合在 composite keys 上检索的数据结构。本文讨论二维的情况,虽让这种结构可以轻松的扩展到多维。介绍了直接插入和平衡插入方法。经验分析告诉我们插入的平均时间是tree size 的对数。介绍了一种检索区域的方法,展现出了查询的高效性。定义了一种最优树,提供了一种算法在 n l o g n nlogn nlogn 的时间内完成优化。但是 delete 和 merging 操作似乎具有内在的困难性。

introduction

One way to attack the problem of retrieval on composite keys is to consider records arranged in a several-dimensional space, with one dimension for every attribute.
一种处理复合键(composite keys)检索的方法是将记录(records)看作是分布在多维空间中(一个字段视为一个维度),然后用一个维度作为索引进行连接。
此时 range query 可以被认为是满足制定规则的多维空间中的一片子区域。
只在一个 key 上进行检索已经有了很好的成果,binary tree、 balanced binary trees
本文将binary tree 进行扩展,并讨论在二维结构数据上的表现。最清晰的例子就是地图上的城市记录。一个简单的查询可以是:Find all the cities which are within 300 miles of Chicago or north of Seattle.

Definitions and Notation

二维 records 存储在每个节点的出度为四的树中。每个节点存储一个 record 并且最多有四个sons。树的 root 将universe 分成四份,可叫做NE、NW、SW、SE,也可以叫四个象限。如图一所示是一棵简单的树以及它表示的 records。

请添加图片描述
对于落在象限边上的点,我们通常认为一、三象限的边是闭合的,二、四象限是开放的。即一个节点的东向边上的点认为是在第一象限。这样做是有些重要的,其中之一就是可以有助于快速判断一个给定的节点位于root的哪个象限。
我们没有考虑冲突(collisions)。
给定的两个记录 A、B,我们定义 COMPARE(A,B) 为一个整数,表示B 在 A 的哪个象限,定义 COMPARE(A,A) 为 0.
共轭象限计算:CONJUGATE(DIRECTION), conjugate(N)=((N+1) mod 4)+1。
节点的实现无需指定,大多数情况下应该是language-dependent。但我们要讨论算法还是需要一些符号,这里我们认为有一种数据类型NODE,子树叫ELM,第三个子树用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值