这一章,我就给大家理个头绪,也不准备写代码了,需要的看前面的数据结构。
由于,直接寻址表,也就是一对一的寻址————有缺点,我们就得到了:
散列表————为什么叫”散“?
因为它不是用y=x的函数,一对一,它用的函数,就叫散列函数。——有几种散列函数呢?
看下图:
一种用除的,一种用乘的,另外一种用随机的函数。
假如都投影一个槽,怎么区分?————这个叫”碰撞“。——怎么解决?
2种办法:
1.链接法,就好像前面介绍的桶排序一个道理,形成一个单链表。
2.开放寻址法。————它又另外有3种具体实现。如下图:
一种是线性一个一个找,一种是平方的找,还有一个是两个hash函数的更随机的找。
最后,这一章还介绍了很多定理,还有介绍各种用途,你明白散列表在干什么就可以了,其他的就不要管了。