坐标高速插入,移动和查询算法
这个算法主要用于需要针对坐标的高速插入移动和查询。比如游戏的坐标定位,查找。
问题的来源是博问上的一个问题:
http://space.cnblogs.com/question/21594/
问题描述:已知一个userId对应一个(x,y)坐标 给定minX,maxX,minY,maxY,求出该范围内所有 userId。 考虑到大量的userId的坐标实时在变化更新,要求插入和 检索给定范围内的所有userid的效率要高
算法思路
如上图所示,整个算法由三部分组成,
第一部分是 id 到 链表节点的哈希表,这个哈希表的设计是为了快速通过id找到id所在的位置。
第二部分是一个二维矩阵,这个矩阵的设计是为了快速通过坐标定位到该坐标下的id列表
第三部分是双向链表,采用双向链表的好处是可以快速的增加和删除节点,双向链表的类属性中设计
http://www.cyqdata.cn/cnblogs/article-detail-2449