散列表
1.1 直接寻址表
关键字全域U比较小时,使用直接寻址法。
直接采用一个数组(直接寻址表),数组中的每个位置--->槽,对应U中的每一个关键字。
缺点:如果U很大,占空间。如果U.length()较小,浪费空间
1.2 散列表
利用散列函数,将U映射到T
散列函数:除法散列法、乘法散列法、全域散列法(随机选取某一个散列函数)
缺点:会有冲突
解决冲突的方法:1.2.1 链接法:把散列到同一槽中的元素都放到一个链表中
1.2.2 开放寻址法
所有元素都存放在散列表里,每个表项都包含动态集合的一个元素,或者NIL
插入:连续检查散列表(探查)
探查算法:线性探查、二次探查、双重散列
search: 与插入算法一样
删除:设置delete标识