标签:
Today, TripAdvisor held a tech talk in Columbia University. The topic is about k-d Tree implemented in TripAdvisor to efficiently search MASSIVE location tree.
Millions of locations, it‘s tough to perform Nearest Neighbor Search.
Using k-d tree to implement location tree.
It‘s a space-partitioning balanced binary tree. And k is the number of dimension.
pseudocode
function kdtree (list of points pointList, int depth) { // Select axis based on depth so that axis cycles through all valid values var int axis := depth mod k; // Sort point list and choose median as pivot element select median by axis from pointList; // Create node and construct subtrees var tree_node node; node.location := median; node.leftChild := kdtree(points in pointList before median, depth+1); node.rightChild := kdtree(points in pointList after median, depth+1); return node; }
标签:
原文地址:http://www.cnblogs.com/ireneyanglan/p/4865641.html