K-d tree for multi-dimensional nearest neighbours http://www.codeproject.com/KB/architecture/KDTree.aspx