数据结构—散列表查找(哈希)

Posted mytrip

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构—散列表查找(哈希)相关的知识,希望对你有一定的参考价值。

顺序表查找某个关键字的记录时,要从表头开始,挨个的比较a[i]与key的值时"="还是"≠",直到相等才返回i,表示查找成功,例如我们可以通过a[i]与key相比结果的 大或者小来进行折半查找到序列的下标;再通过顺序存储的存储位置计算法:LOC (ai)=LOC(a1)+(i-1)×c,得到内存地址,此时发现为了查找到结果,““比较”都是不可避免的,但是真的有必要吗?能否直接通过关键字Key找到记录的内存地址呢?答案是有的!

散列表概念

       

散列技术:在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key),关键字相应的记录存储位置称为散列地址。

散列技术既是一种存储方法,也是一种查找方法。

 

 

 

 

散列表查找步骤

 

 

散列技术适用范围

 

散列技术适合求解问题是查找与给定值相等的记录。查找速度快。 
散列技术不适合范围查找,不适合查找相同关键字的记录,不适合获取记录的排序,最值。

 

散列函数构造

 

 

 

处理散列冲突

    冲突:关键字key1不等于key2。但f(key1)=f(key2)。

 

 

 

 

 

未完待续。。。。。。。。。。。。。

 


以上是关于数据结构—散列表查找(哈希)的主要内容,如果未能解决你的问题,请参考以下文章

数据结构---哈希表(散列表)

数据结构—散列表查找(哈希)

查找算法总结散列表

9-12-哈希查找表/散列表-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版

大话数据结构C语言62 散列表(哈希表)查找

JavaScript 哈希表(散列表)应用