如何跟据坐标快定位某个区域(矩形)

mynamelj 2014-07-25 02:51:38
在屏幕上有N个矩形区域,多则几万个,少则几千个。查找条件是二维坐标POINT即X,Y坐标,目前保存矩形数据结构是链表结构,查找算法是使用遍历的方式来查找定位在哪个区域,虽然这种方式简单,但是显然效率是非常低的。

我想找到一种高效算法来解决查找效率问题,类似于MAP算法,也可是其它算法来提高程序的执行效率,还希望大家给我支点招,谢谢!
...全文
632 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
rizhaolutong 2014-08-16
  • 打赏
  • 举报
回复
有点类似于poi查询,可以自己写一个公式,实现将坐标点转换成矩阵坐标。当然,前提是,你给你的矩阵加上一个逻辑序列号。 在gis里面,都是将地球划分成m*n个方格,每个方格都有一个序号,然后将经纬度转换成方格的行与列。可以简单的求余。这样每次给定一个坐标,通过计算就等定位到方格,不需要遍历每一个方格。不知道我的回答是不是你想要的。
Tiger_Zhao 2014-08-06
  • 打赏
  • 举报
回复
前提是区域不重叠。
给每个区域刷上不同的颜色(1600万多的颜色,绝对够用了),取该点的颜色就知道是哪个区域了。
数据结构要改为有序(颜色值排序)数组,方便快速定位。

又:内存足够时用数组比用链表高效多了。
dbhme 2014-07-25
  • 打赏
  • 举报
回复
整个区域分成m*n个块,m和n看你的数据和内存大小来调整 每个块内的矩形区域放到一个链表里,如果分块后某一块内的矩形区域还是很多,可以考虑继续分块 这样每次只要在一个块内的链表里查找就行了

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧