区间交叠(学习笔记)

来源:互联网 发布:手机淘宝退货率怎么看 编辑:程序博客网 时间:2024/06/18 06:39

  前提---所用到的重要数据结构:最优查找树。 

  问题描述:  已知区间集合的区间查询,设已知区间的集合D和—个查询区间 I , 要求列举出D中所有与 I 相交叠的区间。

 算法思想:

    利用优先查找树作已知区间集合D的区间查询,是令D中每个区间[a,b]对应于平面上的一个点(b,a),因为 a < b, 故所有的点都在下半个第一象限(45度斜线以下)。

     若给定的查询区间为:I=[x,y]。则凡与I交叠的区间I应满足: a <= y, b>=x ,故平面上相应的点应在域[x,∞]×[0,y]之内.如下图所示(a)的例子中,对应平面上点集的查询问题如图(b)所示。

    因查询区间 I=[4,6],借助于优先查找树可确定在平面上域[x,∞]×[0,y]中的点为I2,I4和I5。 这说明D中的I2,I4,I5这3个区间与I相交叠。次查询过程时间复杂性为O(log(n) + k),其中k为列举出的区间数。

来源:《现代工程学与应用》

原创粉丝点击