K-D樹最近鄰算法https://blog.csdn.net/image_fzx/article/details/80624968
一般說來,索引結構中相似性查詢有兩種基本的方式:
- 一種是范圍查詢,范圍查詢時給定查詢點和查詢距離閾值,從數據集中查找所有與查詢點距離小於閾值的數據
- 另一種是K近鄰查詢,就是給定查詢點及正整數K,從數據集中找到距離查詢點最近的K個數據,當K=1時,它就是最近鄰查詢。
Kd-樹是K-dimension tree的縮寫,是對數據點在k維空間(如二維(x,y),三維(x,y,z),k維(x1,y,z..))中划分的一種數據結構,主要應用於多維空間關鍵數據的搜索(如:范圍搜索和最近鄰搜索)。本質上說,Kd-樹就是一種平衡二叉樹。
首先必須搞清楚的是,k-d樹是一種空間划分樹,說白了,就是把整個空間划分為特定的幾個部分,然后在特定空間的部分內進行相關搜索操作。想像一個三維空間,kd樹按照一定的划分規則把這個三維空間划分了多個空間,如下圖所示:
K--D樹結構
K-D樹構建算法: