算法笔记:点四叉树

news2024/11/29 5:37:21
  • 点四叉树是一种用于主要是针对空间点存储与索引的树形数据结构
  • 在点四叉树中,空间被分割成四个矩形,四个不同的多边形对应于SW、NW、SE、NE四个象限

1 基本操作

1.1 初始化

创建一个根节点,该节点代表整个二维空间区域

1.2 插入点

  • 当一个新点需要被插入
    • 从根节点开始,根据点的坐标确定它应该属于哪个象限,并递归地进入该象限。
      • 对于k维数据空间而言,以新插入的点为中心将其对应索引空间分为两两不相交的2k个子空间,依次与它的2k个孩子结点相对应,对于位于某一子空间的点,则分配给对应的子树

1.3 查询

查询一个区域内的所有点时,从根节点开始,检查该区域与每个节点(象限)的交集,并递归地进入与查询区域有交集的节点。

2 举例

假设我们有一个二维空间,范围是[0, 16) x [0, 16),我们要插入以下几个点:

  • A(2, 3)
  • B(4, 7)
  • C(14, 14)
  • D(9, 4)

2.1 初始化

初始时,有一个[0, 16) x [0, 16)的正方形作为根节点

2.2 插入点

2.2.1 插入A:

2.2.2 插入B:

2.2.3 插入C:

2.2.4 插入D

D在以B为中心的右下方,不用再分割空间

2.2.5 建树

3 优缺点

3.1 优点

  • 结构简单
  • 对于精确匹配的点查找性能较高

3.2 缺点

  • 树的动态性差,删除结点处理复杂
    • 比如上面例子中删除B点之后,应该是C还是D跟上去?如果C,D还有子节点呢?
  • 每一个节点除了存储有子节点的信息外,还需要存很多的空指针
    • 比如上面A点,除了存储B外,其他三个象限还需要存空指针
      • ——>空间存储开销大,空间利用率第

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/975570.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解 JVM 之——垃圾回收与内存分配策略

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 垃圾回收策略 说起垃圾收集(Garbage Collection,下文简称GC),有不少人把这项技术当作Java语言的伴生产物。事实上,垃圾收集的历史远远比Java久远&…

【力扣周赛】第 360 场周赛(贪心 ⭐树上倍增)

文章目录 竞赛链接Q1:8015. 距离原点最远的点(贪心)Q2:8022. 找出美丽数组的最小和(贪心)Q3:2835. 使子序列的和等于目标的最少操作次数(贪心)思路竞赛时丑陋代码&#x…

SquirrelMail实现Web方式收发邮件_xionglling的博客-CSDN博客

SquirrelMail实现Web方式收发邮件_xionglling的博客-CSDN博客小松鼠实现Web邮件服务SquirrelMail 是一个用PHP开发的Web邮件系统。它内置纯PHP支持的IMAP和SMTP协议,所有页面都遵循 HTML 4.0标准(没有使用任何 JavaScript 代码),以便最大限度兼容各种多浏…

java对象的组成部分

在 HotSpot 虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding) 对象头主要由两部分组成: 第一部分存…

详细介绍 display: block(块级元素)、inline-block(行内块元素)和inline(行内元素)的差别

html元素的类型主要可分为块级元素、行内元素、行内块元素分别对应的各自的display属性&#xff0c;block、inline、inline-block html的标签都被默认设置了对应的display属性值&#xff0c;例如 块级元素&#xff1a;默认设置display:block的元素 <div>、<h1>~…

无涯教程-JavaScript - NETWORKDAYS函数

描述 NETWORKDAYS函数返回start_date和end_date之间的整个工作日数。工作日不包括周末和节假日中确定的任何日期。 语法 NETWORKDAYS (start_date, end_date, [holidays])争论 Argument描述Required/OptionalStart_dateA date that represents the start date.RequiredEnd_…

软件游戏丢失d3dcompiler_47.dll怎么办?这个几个解决方法可修复

当我们在玩软件游戏时&#xff0c;有时候会出现丢失 d3dcompiler_47.dll 的问题&#xff0c;这让我们感到非常困扰。d3dcompiler_47.dll 是 DirectX 中的一个重要组件&#xff0c;如果它丢失了&#xff0c;那么很多游戏就无法正常运行。我将和大家分享一下我在解决软件游戏丢失…

美妆+七人拼团模式:如何打造新型社交电商营销方式

美妆是一个充满竞争和创新的行业&#xff0c;要想在市场上获得优势&#xff0c;就需要不断寻找新的营销方式&#xff0c;吸引和留住消费者。七人拼团模式就是一种结合了社交电商和拼购玩法的新型商业模式&#xff0c;它可以利用社交网络的裂变效应&#xff0c;增加品牌曝光度和…

我国元宇宙相关专利数居世界第二,中创元宇宙发展取得阶段性进步!

元宇宙是工业和互联网的下一次大变革方向&#xff0c;将划分出一个时代 9月2日&#xff0c;2023年中国国际服务贸易交易会&#xff08;以下简称“服贸会”&#xff09; 在京召开。 在同期举行的数字贸易发展趋势和前沿高峰论坛上&#xff0c;我国元宇宙产业生态在各方的支持下…

2.IDE的优化与插件

文章目录 后端IDEA配置maven配置git配置名字插件安装参考资料 前端vs codeopenssh远程环境开发 后端IDEA 配置maven 参考&#xff1a;https://blog.csdn.net/weixin_44458365/article/details/118416385 -DarchetypeCataloginternal注意&#xff1a;一旦勾选下面的选项&…

SIP mini对讲 SV-10/SV-10W 86型sip对讲终端

SIP mini对讲 SV-10/SV-10W 86型sip对讲终端 A10系列是专门针对室内用户需求研发的一款SIP mini 对讲产品&#xff0c;集智能安防、音频对讲和广播功能于一体&#xff0c;功能强大&#xff0c;性价比高。它外观小巧&#xff0c;支持按键图标/功能自定义&#xff0c;配备3个可编…

Git常用命令用法

参考视频&#xff1a;真的是全能保姆 git、github 保姆级教程入门&#xff0c;工作和协作必备技术&#xff0c;github提交pr - pull request_哔哩哔哩_bilibili 1.Git初始化 首先设置名称和邮箱。然后初始化一下&#xff0c;然后就创建了一个空的Git仓库。 PS D:\golang\oth…

手机word怎么转pdf?这几种方法很简单

手机word怎么转pdf&#xff1f;将word文档转换为PDF文件&#xff0c;在很多场合都非常有用。比如&#xff0c;你可能需要在公司或学校中分享一份重要的文档&#xff0c;或者你想将一份简历或报告以PDF格式发送给招聘人员或老师。无论是哪种情况&#xff0c;将word文档转换为PDF…

Nginx一主一从配置Keepalive

文章目录 机器规划监控Nginx进程安装配置Keepalive验证高可用性 机器规划 主机vip内网ipNginx1192.168.xxx.xx192.168.xxx.abNginx2192.168.xxx.xx192.168.xxx.cd 监控Nginx进程 Nginx监控脚本&#xff0c;监控nginx&#xff0c;如果nginx停了&#xff0c;那么杀掉keepalive…

性能强悍价格到位,老牌NAS也玩性价比

前几天看到站内爆料铁威马的优惠信息&#xff0c;搭载 N5095 的 F4-423 到手不到 1900&#xff0c;一看之下着实有些心动&#xff0c;说起来我折腾了这么多 NAS&#xff0c;铁威马还真没试过。稍作思考直接下单&#xff0c;毕竟能够存在这么多年的 NAS 品牌&#xff0c;没点自己…

Java I/O模型发展以及Netty网络模型的设计思想

Java I/O模型发展以及Netty网络模型的设计思想 I/O模型Java BIOJava NIOJava AIO NIO Reactor网络模型单Reactor单线程模型单Reactor多线程模型主从Reactor多线程模型 Netty通信框架 前言&#xff1a; BIO、NIO的代码实践参考&#xff1a;Java分别用BIO、NIO实现简单的客户端服…

Redis Redis介绍、安装 - Redis客户端

目录 redis是什么&#xff0c;他的应用场景是什么&#xff1f; Redis的一些主要特点和应用场景&#xff1a; redis的官方网站&#xff1a;Redis redis是键值型数据库&#xff1a;&#xff08;也就是key-value模式&#xff09;&#xff08;跟python的字典很像&#xff09; …

渗透测试漏洞原理之---【SSRF 服务端请求伪造】

文章目录 1、SSRF概述1.1、场景1.1.1、PHP代码实现 1.2、SSRF原理1.3、SSRF危害 2、SSRF攻防2.1、SSRF利用2.1.1、文件访问2.1.2、端口扫描2.1.3、读取本地文件2.1.4、内网应用指纹识别2.1.5、攻击内网Web应用 2.2、SSRF示例2.3、SSRF防御2.3.1、过滤输入2.3.2、过滤输出 3、SS…

【知网检索稳定】第三届社会发展与媒体传播国际学术会议(SDMC 2023)

第三届社会发展与媒体传播国际学术会议&#xff08;SDMC 2023&#xff09; 2023 3rd International Conference on Social Development and Media Communication 第三届社会发展与媒体传播国际学术会议 (SDMC 2023)将于2023年11月03-05日在中国杭州召开。会议主题主要围绕社会…

【紫光同创国产FPGA教程】——【PGL22G第七章】串口收发实验例程

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处 适用于板卡型号&#xff1a; 紫光同创PGL22G开发平台&#xff08;盘古22K&#xff09; 一&#xff1a;盘古22K开发板&#xff08;紫光同创PGL22G开…