zoukankan      html  css  js  c++  java
  • 空间的搜索与R树

      在现实地图应用中,有个比较常见的问题,比如,你到了一个地方,想查查附近1km内有什么饭店。

      这时地图应用就可以马上查询出周围有什么饭店,如果让你设计,你会怎么设计。假设局限在中国的地图上,共有1000000(用N表示)家饭店,每个饭店就2个信息量(经度x与纬度y),你现在到了某个地方(三个信息量,经度x2与纬度x2,还有以你为中心圆的半径 R个单位),假设这些数据在内存中是有序的,并且在小范围内点与点的信息存在邻接表内。

      方法一:枚举,这个通过你所在的坐标与N个饭店进行比较,在R范围内的就输出,反之不输出。时间复杂度O(N),当饭店数量很大的时候,搜索速度就会很慢。

      方法二:考虑到数据是有序的,则先以X坐标两次二分查找离你所在的位置的最左端与最右端得到A个城市,再y坐标两次二分查找离你所在的位置的最上端与最下端得到B个城市,在将A和B做个交集,就可以知道符合条件的饭店了。 (共4次二分+小范围球交集  ==  O(log(n))+ C ,考虑到一定范围内的饭店次数是一定的所以为常数C )

      方法三:用R树,暂时不想写了 :http://blog.csdn.net/v_JULY_v/article/details/6530142

  • 相关阅读:
    别让删库这种事情再发生
    别让删库这种事情再发生
    oracle目录结构
    oracle 查看启动时间和运行时间
    oracle 执行计划(连接类型)
    oralce执行计划(三)
    跟踪索引是否有用
    AIX系统之启动
    oracle查看核心进程
    oracle执行计划(二)
  • 原文地址:https://www.cnblogs.com/huhuuu/p/3446633.html
Copyright © 2011-2022 走看看