主要内容
前提
如果在数据元素的存储位置和其关键字之间建立某种直接关系,那么在进行查找时,就无需逐个比较关键字或者只做少数次的比较,并按照直接关系由关键字找到相应的记录,这就是散列查找法(Hash Search)的思想。它通过对元素的关键字值进行某种运算,直接求出元素的地址。
基本概念:
1)散列函数:p = H(key);p表示散列地址,key表示关键字,函数H()表示关键字与存储位置之间的某种关系。
2)散列表:一维数组,数组下标表示散列地址。
3)冲突、同义词:不同的关键字可能会求得同一个散列地址,这样的情况称为冲突,造成这种情况的关键字称为同义词。
在实际应用中,理想化的、不产生冲突的散列函数是基本不存在的,这是因为散列表的关键字取值集合往往大于空间的地址集合。
散列函数是多对一的映射,冲突是不可避免的。我们只能根据具体情况,构造一个尽可能减少冲突的散列函数。
而一旦冲突发生,我们必须采取相应的措施及时予以处理。
<

本文介绍了哈希查找的概念,包括散列函数的构造方法如数字分析法、平方取中法、折叠法和除留余数法,以及处理冲突的开放地址法和链地址法。散列查找通过直接计算关键字的散列地址,减少了查找时间,但冲突的处理是关键。文章详细阐述了冲突处理策略和散列查找的过程。
最低0.47元/天 解锁文章
1780

被折叠的 条评论
为什么被折叠?



