如何提高list查找效率,10万数据用一个list存,查询快,还是用多个list存,查询快
c++用list实现hashmap功能,key和value均为string,查询10万数据,如何提速...
c++用list实现hashmap 功能,key 和value均为string ,查询10万数据,如何提速
展开
2个回答
展开全部
如果数据无序,那种方法都不快,最好就是顺序查
如果是ArrayList且有序 ,最好是折半查找
如果是想分多个list,那么保证段间有序是一种不错的办法
最好的情况是分sqrt(100000)个list,每个的数据是sqrt(100000)个,段间有序,段内随便,用分块查找速度还不错
如果只是用一个list,而且是LinkedList,那么没有好办法,就是直接查,有序也不行
如果是ArrayList且有序 ,最好是折半查找
如果是想分多个list,那么保证段间有序是一种不错的办法
最好的情况是分sqrt(100000)个list,每个的数据是sqrt(100000)个,段间有序,段内随便,用分块查找速度还不错
如果只是用一个list,而且是LinkedList,那么没有好办法,就是直接查,有序也不行
更多追问追答
追问
c++用list实现hashmap 功能,key 和value均为string ,查询10万数据,如何提速
追答
hashmap 查询效率仅与装填因子有关(在冲突解决方法确定的情况下)
冲突解决方法一般选取“平方探索法”或“拉链法”较好,最好不要使用“线性探索法”
装填因子小于0.5吧,越小越好,但是会占用很多存储空间
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询