哈希表【Hash table】(散列表)
解决冲突(主要方法,其余方法不做阐述)
一.开放定址法
1.线性探测再散列,遇到冲突位置后移,d(i)=1,2,3,4……
2.二次(平方)探测再散列,d(i)= 1^2 ,-1^2, 2^2, -2^2, 3^2, -3^2……
二.链地址法
一维数组存放头指针,单链表存放同义关键字
题目如下,现有一组关键字{19,14,23,1,68,20,84,27,55,11, 10,79}按照哈希函数Hash(key)=key%13,要求用三种方法解决冲突。![线性探测再散列处理](https://img-blog.csdnimg.cn/8ee65315a8fd4d9a96bb07ac3605abac.jpg?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5Y6M5LiJ5Y2D5bed,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/c79cdaa92e1a4aeaaf1225616f96c513.jpg?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5Y6M5LiJ5Y2D5bed,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
下方图片蓝色笔为二次探测再散列处理冲突,请注意ASL是平均查找长度。
![在这里插入图片描述](https://img-blog.csdnimg.cn/e67e23ee190b4893bfde21fa4d672b58.jpg?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5Y6M5LiJ5Y2D5bed,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)