Geometric Applications of BSTs

  • 1 1d range search 一维区间搜索
  • 2 line segment intersection 线段交点几何问题
  • 3 kd trees
    • 3.1 2d正交范围搜索
      • 3.3.1 网格分割法
      • 3.3.2 递归分割法
    • 3.2 nearest neighbor search
  • 4 interval search trees 区间搜索树
    • 4.1 1d区间搜索
    • 4.1.1 插入
    • 4.1.2 search
  • 5 rectangle intersection

1 1d range search 一维区间搜索



 //Returns the number of keys in the symbol table in the given range,两个边界也取进去public int size(Key lo, Key hi){if (contains(hi)) return rank(hi) - rank(lo) + 1;else              return rank(hi) - rank(lo);//lo这边的rank始终一样}//Does this symbol table contain the given key?public boolean contains(Key key) {if (key == null) throw new IllegalArgumentException("argument to contains() is null");return get(key) != null;}public int rank(Key key){return rank(key, root);}private int rank(Key key, Node x){//返回以x为根结点的子树中小于x.key的键的数量if      (x == null) return 0;int cmp = key.compareTo(x.key);if      (cmp < 0)   return rank(key, x.left);//若key小于根结点,返回key在左子树的排名(递归)else if (cmp > 0)   return 1 + size(x.left) + rank(key, x.right);else                return size(x.left);//如果key和根结点的key相等,rank就是左边子树的结点总数}

2 line segment intersection 线段交点几何问题

  • 扫描线算法

3 kd trees

3.1 2d正交范围搜索

3.3.1 网格分割法


  • 选择根号N为M的大小(小正方形边长),可以保证时间不变
  • 因此,针对有些数据不随机的情况,grid implementation并不合适

3.3.2 递归分割法


  • 下在左,上在右
  • 单数用垂线,双数key用水平线

  • 如果一条线穿过区域,则左右子树都要遍历,先遍历一边,结束,再另一边
  • R是所有要返回的包含在区域内的点

3.2 nearest neighbor search

  • 寻找一点周围最近的点
  • query point在一点左边,因此先遍历左子树(右子树稍后也要遍历)
  • 如果在左子树中,找到距离更小的点,把这个点设为新的champion,且不再遍历右子树,因为比query point到1点所在垂线的垂直距离短
  • 上下同理

4 interval search trees 区间搜索树

4.1 1d区间搜索


4.1.1 插入

4.1.2 search

  • 此处max endpoint被用上

Node x = root;
while (x != null){if       (x.interval.intersects(lo,hi)) return x.interval;else if (x.left = null)              x = x.right;else if (x.left.max < lo)               x = x.right;else                                   x = x.left;
}
return null;
  • 源码见algs4 --> Interval1D


5 rectangle intersection



Algorithms-3.3补充 Geometric Applications of BSTs 二叉树的几何应用相关推荐

  1. 值得一看的网络课程推荐(不限于计算机科学)

    前言:搜罗来一些不错的网络课程,比如Coursera, edX, Udacity上 一.计算机类 算法类首推Coursera上普林斯顿大学的Robert Sedgewick,能把复杂的算法(典型例子: ...

  2. 一些我推荐的和想上的网络课程(Coursera, edX, Udacity,MIT OCW)

    转载自 http://blog.csdn.net/fightforyourdream/article/details/21314929 感觉是很好的CS 网上公开课总结,在终身学习时代,好好利用网络学 ...

  3. 元启发式算法的参数微调方法(tuners for meta-heuristic algorithms)

    目录 1. CRS-Tuning 2. F-Race 3. REVAC Reference 元启发式算法的tuners方法主要有CRS-Tuning, F-Race, REVAC等.下面,分别附上每一 ...

  4. 2012, PPSN,Geometric Semantic Genetic Programming,GSGP

    Abstract 摘要 问题: 传统的遗传程序设计 (Genetic Programming,GP) 通过使用操纵语法表示的搜索算子来搜索函数/程序的空间,而不考虑它们的实际语义/行为.最近,语义感知 ...

  5. ECCV2022论文列表(中英对照)

    Paper ID Paper Title 论文标题 8 Learning Uncoupled-Modulation CVAE for 3D Action-Conditioned Human Motio ...

  6. 度量学习 流形学习_流形学习2

    度量学习 流形学习 潜图深度学习 (Deep learning with latent graphs) TL;DR: Graph neural networks exploit relational ...

  7. 机器视觉开源处理库汇总

    从cvchina搞到的机器视觉开源处理库汇总,转来了,很给力,还在不断更新... 通用库/General Library OpenCV 无需多言. RAVL Recognition And Visio ...

  8. 2020年 ICLR 国际会议最终接受论文(poster-paper)列表(三)

    来源:AINLPer微信公众号(点击了解一下吧) 编辑: ShuYini 校稿: ShuYini 时间: 2020-02-21     2020年的ICLR会议将于今年的4月26日-4月30日在Mil ...

  9. (九:2020.08.27)CVPR 2019 追踪之论文纲要(译)

    CVPR 2019 追踪之论文纲要(修正于2020.08.28) 讲在前面 论文目录 讲在前面 论坛很多博客都对论文做了总结和分类,但就医学领域而言,对这些论文的筛选信息显然需要更加精细的把控,所以自 ...

  10. 《因果科学周刊》第3期:因果助力 Stable Learning

    为了帮助大家更好地了解因果科学的最新科研进展和资讯,我们因果科学社区团队本周整理了第3期<因果科学周刊>,从 Causality, Causal Inference, Causal AI ...

最新文章

  1. python字典通讯录_Python利用字典将两个通讯录文本合并为一个文本实例
  2. 扫地机器人“离家出走”的真实原因找到了:差个自动驾驶算法
  3. 2月1日学习内容整理:算法
  4. 云端的SRE发展与实践
  5. Java Spring源代码学习之DispatcherServlet.getHandler
  6. CSDN开发者周刊 TDengine:专为物联网订制的大数据平台 YugaByte DB:高性能的分布式ACID事务数据库
  7. 爱奇艺CEO龚宇呼吁网络电影涨价:6块钱太低了
  8. 多元线性回归数据集_TensorFlow学习Program1——13.实现一元、多元线性回归(基于房价数据集)...
  9. 7模型集成:细粒度用户评论情感分析冠军思路及源码
  10. Bailian2737 大整数除法【大数】
  11. 一只特立直行的猪_修复特立尼达IE 11部分页面请求(PPR)问题/支持所有IE浏览器
  12. 验证服务器的通用性,通用VNFM部署的可行性分析与验证
  13. 桌面下雪软件测试工程师,Snow Flakes屏幕下雪动态屏保 模拟真实降雪情景的屏保程序...
  14. IE 浏览器旧版本下载
  15. ARINC485和RS485的区别
  16. iis6 增加PHP+MYSQL等时,记得 PHP目录要给EVERYONE权限
  17. Capstone CS5218转接设计|DP转HDMI 4K 30HZ转接电路
  18. 百度地图API V2.0 离线版本
  19. 关于echarts自定义合并中国地图分区展示的问题
  20. 计算机培训word,计算机培训word2010.pptx

热门文章

  1. 大数据网站汇总(数据搜集、大数据竞赛、)
  2. 大数据软件有哪些,一网打尽
  3. 概率论与数理统计---------分布函数
  4. python多重背包_多重背包
  5. (干货)五种知网文献免费下载方式
  6. Android studio 打包 uni App 修改apk名称,app名称及图标
  7. Java Stream流
  8. Excel利用宏进行VBA编程
  9. 分层抽样不按比例如何加权_抽样技术论文 -
  10. SQL注入了解认识及注入方式