+ -
当前位置:首页 → 问答吧 → key大概约6百万, 请问使用哪种hash结构?

key大概约6百万, 请问使用哪种hash结构?

时间:2011-12-03

来源:互联网

发现使用map结构时, 当记录条数比较多时(key为字符串string型, value为int型), 例如600万, 占的内存量非常大. 32G内存机器根本就不够跑.

请问当记录比较大时, 哪种hash结构比较适合, 对内存需求不是很大? 谢谢

作者: lidengdeng   发布时间: 2011-12-03

可以把字符串编码成long long。然后就是long long 到int的映射
算法导论上有一种思路是abc => c + b*26 + a*26*26
也可以参考这里:http://topic.csdn.net/u/20110729/10/dbf05cb5-93c5-4e4f-9b23-7772418bb94e.html?12765

作者: dizuo   发布时间: 2011-12-03

记错了,是编程之美上的一道题。

作者: dizuo   发布时间: 2011-12-03

数据库比较合适

作者: joanlynnlove   发布时间: 2011-12-03

对string做个转换是个不错的想法,可以试一下CRC32
或者采用多级索引,
600万个数据,比如将主键a开头的放在一个map里面,b开头的放在一个map里面,
要的时候先查找第一个字符是什么,如果是a的话那就只加载a所对应的map了

作者: p569354158   发布时间: 2011-12-03