间隔搜索问题给出了一系列的范围,而测试的时间间隔,寻找和测试间隔交叉间隔。

为了解决问题,须要专门编写一个类,这个类的接口例如以下:

public interface IntervalST<Key extends Comparable<Key>, Value> {void put(Key lo, Key hi, Value value);Value get(Key lo, Key hi)void delete(Key lo, Key hi)Iterable<Value> intersect(Key lo, Key hi);
}

每一个节点中有两个值。第一个值是区间的起点和终点,第二个值是该节点以及子节点中最大的区间终点。为了简化问题,将二叉树以区间起点作为keyword。

插入操作

插入区间的时候,依据普通二叉树的规则进行插入。在插入完毕之后须要更新全部父节点的最大右区间。

查找操作

查找操作须要运行一下步骤:

  • 假设当前节点与被搜索的区间有交集,返回当前节点

  • 假设左子节点是空的,向右側深入

  • 假设整个区间在当前节点的左側,向左側深入

  • 其余情况向右側深入

复杂度

全部操作的复杂学位logN。

版权声明:本文博主原创文章。博客,未经同意不得转载。

转载于:https://www.cnblogs.com/bhlsheji/p/4856317.html

算法5-7:区间检索相关推荐

  1. RMQ算法,求区间最值

    poj 3264 Balanced Lineup@ 2016-07-27 11:15 49人阅读 评论(0) 收藏 举报  分类: RMQ(Range MinimumMaximum Quer)(4)  ...

  2. 贪心算法无重叠区间c语言,贪心算法之区间问题.md

    --- title: 贪心算法之区间问题 tags: - Leetcode categories: - Leetcode author: 四叶草 top: false abbrlink: 26230 ...

  3. C++ 算法篇 动态规划----区间动态规划

    区间动态规划的含义与模板解释 区间DP,其实求的就是一个区间内的最优值. 一般这种题目,在设置状态的时候,都可以设f[i][j]为区间i-j的最优值 而f[i][j]的最优值,这有两个小区间合并而来的 ...

  4. 【每周一篇】推荐算法之威尔逊区间法

    简单阐述一下自己的学习计划: [每周一篇]更侧重于理论,希望尽量能够形成一个体系或者完整的脉络 当然,也不排除因为业务或者紧急需求,突然跳到某个领域的可能~ [每周代码]更侧重于代码实践,可能是for ...

  5. ST算法 - RMQ(区间最值问题)—— 倍增

    文章目录 引入倍增: 例题1:区间和 例题2:Genius ACM 应用: ST算法 求解 RMQ(区间最值问题) 模板Code: 练习题: ST算法 维护区间最大公约数 例题:Pair of Num ...

  6. 一、基础算法9:区间合并 模板题+算法模板(区间合并)

    文章目录 算法模板 离散化题目模板 模板题 区间和 原题链接 题目 题解 思路 算法模板 离散化题目模板 // 将所有存在交集的区间合并 void merge(vector<PII> &a ...

  7. java区间合并_贪心算法:合并区间

    ❝ 最近文章阅读量少了很多啊打卡也少了, 是不是年底了很多录友在忙期末考试啊,哈哈. 给出一个区间的集合,请合并所有重叠的区间. 示例 1: 输入: intervals = [[1,3],[2,6], ...

  8. 高效算法——E - 贪心-- 区间覆盖

    E - 贪心-- 区间覆盖 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/E 解题思路: 贪心思想, ...

  9. 算法基础课-动态规划-区间dp-AcWing 282. 石子合并:区间dp

    文章目录 题目分析 题目链接 题目分析 只能合并相邻两堆.求体力最小值 数据比较弱,最多300堆,每堆重量不超过1000. 状态表示 f[i][j]表示合并区间[i,j]需要的最小体力 状态转移 把区 ...

最新文章

  1. 用python下载文件的若干种方法汇总
  2. HDU1083(二分图-匈牙利算法)
  3. 雷军大秀新宠「铁蛋」!打滚握手会空翻,这个机器狗只要9999
  4. Linux内核对设备树的处理
  5. 牛皮啊,全网独家SpringCloud Alibaba手打笔记
  6. 在PC上用模拟器搭建Windows Mobile仿真环境:Microsoft Device Emulator使用
  7. python遍历文件夹方法
  8. 安装erlang没有bin文件夹_Windows10有关jdk13.0.1的详细安装过程
  9. 基于Python的指数基金量化投资 - 指数投资技巧(二)定期不定额
  10. 模型评估与选择(后篇)-代价曲线
  11. excel取消合并单元格并填充内容的技巧
  12. 谈谈使用破解百度云app的安全风险
  13. win10系统如何玩各个版本的红色警戒
  14. linux安装mongodb,实测好用
  15. 手把手教你撸个直播小程序
  16. 导出 MySQL 数据库表结构设计文档
  17. Android9.0 紧急号码配置
  18. 第三章 学习CC3200的ADC
  19. C语言【程序19】题目:两个乒乓球队进行比赛,各出三人。
  20. No application encryption key has been specified laravel

热门文章

  1. kr中的逆波兰表示法计算器
  2. 带默认参数值的函数 内联函数
  3. Codeforces Round 722C:Destroying Array(离线)
  4. 2016CCPC网选 1002:Zhu and 772002(求解矩阵秩)
  5. python之读入数据
  6. python爬虫案例——百度贴吧数据采集
  7. java 队列实现_队列的实现(JAVA)
  8. mysql增加自定义函数功能
  9. 支持iCloud简记
  10. 《IT经理世界》:中国软件业开始起飞