标签:
1.Hash functions
2.解决冲突的方法
3.完全散列(perfect hashing)
采用两级的散列方法来设计散列方案,每一级上都采用全域散列。适用于关键字集合是静态的情况,即关键字一旦存入表中,关键字集合就不再改变。如程序设计语言中保留字的集合,CD—ROM上的文件名的集合。
4.采用开放寻址法的散列表中的删除操作
删除关键字时,不能仅仅将该位置置空(NIL),比如两个关键字的hash值相同时,那么第二个关键字就要往后移,这种情况下删除第一个关键字将会导致第二个关键字无法被检索到。一个解决方法是用特定的值DELETED来标记该位置。在必须删除关键字的应用中,更常见的做法是采用链接法来解决冲突。(python中字典是通过散列表实现,用开放寻址法解决冲突,搜索的时间复杂度为T(n)=O(1);c++的STL通过红黑树实现,搜索的时间复杂度T(n)=O(lgn),SGI的STL通过链接法解决冲突。)
5.时间复杂度
搜索、插入、删除的时间复杂度:T(n)=O(1).
标签:
原文地址:http://www.cnblogs.com/bukekangli/p/4275946.html