Kd-Trees
Geometric application of BSTs
1d range search
![image](https://user-images.githubusercontent.com/161689/154791439-67b937c6-8123-494b-8cb1-f41c222bab9e.png)
![image](https://user-images.githubusercontent.com/161689/154791500-3dce727e-4471-40db-b6ed-a07be404cfc2.png)
![image](https://user-images.githubusercontent.com/161689/154791541-c9fe436c-db9d-48b8-8958-fe4c066b4c31.png)
1d range count
on BST can be achieved with recursiverank()
calls.
![image](https://user-images.githubusercontent.com/161689/154791741-396b7ec0-648c-4a45-9849-ab87bc5ada6d.png)
Orthogonal line segment intersection - sweep line algorithm
![image](https://user-images.githubusercontent.com/161689/154792006-1eb13426-9ca7-412a-ac39-53587733f532.png)
![image](https://user-images.githubusercontent.com/161689/154792027-1add23d4-4508-4b11-adfe-05d498f9e721.png)
![image](https://user-images.githubusercontent.com/161689/154792263-b13ab743-2e02-487e-b004-f088db708dc7.png)
2-d orthogonal range search - Kd-trees
Kd tree
: Recursively partition k-dimensional space into 2 halfspaces