高效的搜索算法可计算线段集上的横截面

时间:2019-05-13 07:34:58

标签: algorithm search geometry line

我有一个很大的线段数据集。每个线段均由[x-start,x-end]组成。我正在寻找一种有效的算法来计算给定的x位置的相交线集。

enter image description here

2 个答案:

答案 0 :(得分:0)

yves-daoust的答案:间隔树是你最好的朋友

答案 1 :(得分:-1)

  1. 找到x∈[开始; end] in O(n)
  2. 在找到的行列表中,找到起点最小的线和终点最大的线(线性时间)。因此,您将获得两个点(A,B)
  3. 查找所有行,其中:

    • A∈[开始;结束]
    • B∈[开始;结束]
    • start∈[A; B]和结束∈[A,B] 并将它们放入Set中。

总时间复杂度应为O(n)