Download presentation
1
Orthogonal Range Search
deBerg et. al (Chap.5) Fall 2005
2
1D Range Search Data stored in balanced binary search tree T
Input: range tree T and range [x,x’] Output: all points in the range Fall 2005
3
Idea split-node Find split node
x x’ split-node Find split node From split node, find path to m, the node x; report all right subtree along the path From split node, find path to m’, the node x’; report all left subtree along the path Check m and m’ Fall 2005
4
Performance T: O(n) storage, built in O(nlogn) Query:
Worst case: Q(n) … sounds bad Refined analysis (output-sensitive) Output k: ReportSubTree O(k) Traverse tree down to m or m’: O(logn) Total: O(logn + k) Fall 2005
5
2D Kd-tree for 2D range search
Kd-tree: special case of BSP Input: [x,x’][y,y’] Output: all points in range Fall 2005
6
Build kd-tree Break at median n/2 nodes
Left (and bottom) child stores the splitting line Fall 2005
7
Step-by-Step (left subtree)
4 9 1,2,3,4,5 6,7,8,9,10 5 10 2 7 1 8 3 6 Fall 2005
8
4 9 6,7,8,9,10 5 10 2 1,2,3 4,5 7 1 8 3 6 Fall 2005
9
4 9 6,7,8,9,10 5 10 2 4,5 7 1 8 3 1,2 3 6 Fall 2005
10
4 9 6,7,8,9,10 5 10 2 4,5 7 1 8 3 3 6 1 2 Fall 2005
11
4 9 6,7,8,9,10 5 10 2 7 1 8 3 3 6 4 5 1 2 Fall 2005
12
Range Search Kd-Tree Idea:
Traverse the kd-tree; visit only nodes whose region intersected by query rectangle If region is fully contained, report the subtree If leaf is reached, query the point against the range Fall 2005
13
Algorithm v lc(v) rc(v) rc(v) v lc(v) Fall 2005
14
Example l1 l1 l2 l3 l2 l3 Fall 2005
15
Region Intersection & Containment
Each node in kd-tree implies a region in 2D (k-d in general): [xl,xh]×[yl,yh] Each region can be derived from the defining vertex and region of parent Note: the region can be unbounded The query rectangle: [x, x’]×[y, y’] Containment: [xl,xh] [x, x’] [yl,yh] [y, y’] Intersection test can be done in a similar way Fall 2005
16
Example (-,)×(-,) (-,0]×(-,) 4 3 1 2 1(-4,0) 2(0,3) 3(1,2)
4(3,-3) (-,0]×(-,) 4 3 1 2 Fall 2005
17
Example (-,)×(-,) (-,0]×(-,) 4 3 (-,0]×(-,0] 1 2 1(-4,0)
2(0,3) 3(1,2) 4(3,-3) (-,0]×(-,) 4 3 (-,0]×(-,0] 1 2 Fall 2005
18
Example (-,)×(-,) (0,)×(-,) 4 3 1 2 1(-4,0) 2(0,3) 3(1,2)
4(3,-3) (0,)×(-,) 4 3 1 2 Fall 2005
19
Example (-,)×(-,) (0,)×(-,) (0,)×(-3,) 4 3 1 2 1(-4,0) 2(0,3)
3(1,2) 4(3,-3) (0,)×(-,) (0,)×(-3,) 4 3 1 2 Fall 2005
20
Homework Research on linear algorithm for median finding. Write a summary. Build a kd-tree of the points on the following page. Do the range query according to the algorithm on p.13 Detail the region of each node and intersection/containment check Fall 2005
21
Read off coordinate from the sketching layout, e.g., a=(-4,2)
b a c f e g h d Read off coordinate from the sketching layout, e.g., a=(-4,2) Query rectangle = [-2,4]×[-1,3] Fall 2005
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.