第1关:采用除留余数法加线性探测法建立哈希表
任务描述
本关任务:采用除留余数法加线性探测法建立哈希表。
相关知识
为了完成本关任务,你需要掌握:
1.哈希表结构;
2.根据处理冲突的不同方法,设计不同的哈希表结构并进行初始化。
哈希表的基本概念
顺序表、树表的缺点:
查找所需时间与比较次数有关,能不能不比较,一次存取就能得到所查元素?
哈希表(Hash Table)又称散列表,是除顺序存储结构、链式存储结构和索引表存储结构之外的又一种存储结构。
散列表的基本思想:根据记录选择一个关键字key,同时为每个key计算一个散列码Hash(key),将记录存储位置与散列码关联起来。
需要解决两个问题:
如何构造散列函数?对给定的一组关键字,使其计算简单,并且分布均匀,即减少冲突。
如何处理冲突?因为不可避免。
构造哈希函数的方法
构造哈希函数的目标:使得到的哈希地址尽可能均匀地分布在m个连续内存单元地址上,同时使计算过程尽可能简单以达到尽可能高的时间效率。
根据关键字的结构和分布的不同,有多种构造哈希函数的方法,例如除留余数法。