大家好,我知道hash查找算法,第一是先建一个hash表,给出关键码计算hash值,然后根据hash值得出关键码存放位置,可以用链表,也可以用数组存储。然后将要查询的关键码用同意的hash函数计算hash值,然后去hash表中对应的位置,去查看是否有该元素,关于冲突之类的先不说。
我先问的是如果我的数据量巨大,我把它存在数据库中,请问我还可以用hash查找算法吗?我是要一个个从数据库总取出关键码,然后计算其hash值,然后创建成hash链表中?
hash查找算法 数据量在10万左右 数据库中存储
答案:2 悬赏:80 手机版
解决时间 2021-03-04 16:35
- 提问者网友:浩歌待明月
- 2021-03-04 04:08
最佳答案
- 五星知识达人网友:走死在岁月里
- 2021-03-04 04:42
可以用,但是最好加入缓存机制。
全部回答
- 1楼网友:纵马山川剑自提
- 2021-03-04 04:51
1、首先把地图按赤道和0经度线划成4块,左上、右上、左下、右下的Hash code分别是二进制00、01、10、11,然后把每块继续四等分,小块的Hash code就是上一级的Hash code加上本级的这两个二进制位,继续等分下去,你就可以得到不同范围不同位置的很多个Hash code。
2、每一级Hash code都对应了一个块的大小,这个尺寸可以用来做粗过滤
3、把地图上需要索引的点按所属的块的Hash code做索引。
查找时,目标点和搜索距离一起可以得到一个合适层级的Hash code,把这个Hash code周围的8个块都算出来,粗筛的范围就这一共9个块。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯