最近看算法,深入研究一下字典的实现。
字典:
①、STL中的map
C++标准库中提供的map是一种用平衡二叉树实现的字典数据结构。
②、当然还有Python中的dict----人生很短,我用Python
引用一下:
http://www.jianshu.com/p/02af9673ab34 文/lintong(简书作者)
由于Python内部大量使用dict这种结构,效率要求很高,所以Python没有使用STL map的平衡二叉树,而采用哈希表,最低能在O(1)时间内完成搜索。
使用hash就必须解决冲突的问题,dict采用的是开放寻址法。原因我觉得是开放寻址法比拉链法能更好地利用CPU cache,cache命中率较高。
网友评论