数直線上の 1 点に重なる線分の数を効率的に数えることはできP
ますか?
すべての線分は 1 つの数直線上にあります (これは1-D
世界であり、世界ではありません3-D
)。
各線分には、開始座標X1
と終了座標がありX2
ます。
例:
Line segment A spans from X1==1 to X2==3
Line segment B spans from X1==2 to X2==4
Line segment C spans from X1==3 to X2==5
Line segment D spans from X1==1 to X2==4
----------------------------------------
Ex1: Line segments that overlap point P==2: A,B and D >>> overlap count==3.
Ex2: Line segments that overlap point P==7: None >>> overlap count==0.
Ex3: Line segments that overlap point P==3: A,B,C and D >>> overlap count==4.
もちろん、線分が 4 つしかない場合、コードは単純です。ただし、4 億の線分の巨大な空間データベースがある場合、検索は非常に遅くなります。
この線分のリストからオーバーラップの総数を効率的に検索できるアルゴリズムはありますか?
私がこれまでに見ているもの