kd tree怎么样从最近邻推广到k近邻
begeekmyfriend/kdtree: Absolute balanced kdtree for fast kNN search.
■网友
【kd tree怎么样从最近邻推广到k近邻】 为了避免混乱,先改一下题目的符号:如何用kd-tree求最近m个点(不然两个都是k容易混乱)。
注意到,用kd-tree查找最近邻的算法,其实质是先选择一棵子树查找对应超矩形区域中的最近点,然后和根节点对比,最后判断是否有必要去另一个子树里查找,如有必要则递归到另一棵子树去查找。
要查找最近m个点,我们可以对上述想法稍作修改,维护一个最大长度为m的优先队列(按照距离从小到大的顺序入队),查找的时候还是先选一棵更可能的子树,得到这颗子树对应的超矩形里的最近m个点,存储在优先队列里。然后看看根结点和查询点的距离是否比队尾结点和查询点的距离更小,如果是的话,就把队尾pop出来,把根节点push进优先队列。然后判断是否要进入另一棵子树查询,这里的标准很简单,看队尾结点(也就是距离最大的点)与查询点构成的超球体是否和另一棵子树对应的超矩形相交,如果相交就递归进入另一棵子树查询。
建议题主在网上搜索一下hdu4347的解题报告,对着竞赛选手们的代码理解。
推荐阅读
- dart这编程语言现在发展怎么样了,语法与Java,c#很相似,甚至更简洁
- 青年|一汽奔腾T77怎么样?车主吐槽:后排座椅太短,和坐小板凳似的
- 电商网站支付流程的流失率是怎么样的从用户点击充值/支付按钮,到支付完成,其中每一步的流失比率都是咋样的
- 作为一个服装供应商,怎么样与淘宝卖家沟通才能卖出自己的产品或者拿到订单
- 在丁丁租房工作的感受是怎么样的
- 城市数据团是怎么样一个团队
- win7中本地连接跟无线网卡同时使用时是怎么样的模式
- 猫扑网南迁广西,媒体唱衰BBS,论坛的未来会怎么样怎样改变
- 被人围攻是怎么样一种体验,包括但不限于(蛋糕,口舌,拳脚,西瓜刀,机枪,code review)
- o2o模式的电商怎么样进行线上线下的引流