KD树

KD树

树的生成步骤:

1、先计算所有数的x方差和y方差,哪个大以哪个作为域,例子中x方差大,x域中7是中位数,故作为根结点。x比7小的放到左子树,比7大的放右子树。

2、继续比较左子树的x方差和y方差,递归进行如上操作,得到二叉树。

3、(2.1,3.1)。(7,2)是按x域建立的,2比7小,故进入左子树,(5,4)是按y域建立的,3比4小,进入左子树。

回溯:

搜索路径中的节点为<(7,2),(5,4),(2,3)>。以(2.1,3.1)为圆心,(2.1,3.1)到(2,3)的距离为半径画圆。和(5,4)的y域不相交,所以继续回溯,如果相交,则去右子树。