深入理解数据结构之散列表、散列、散列函数

           前言

                           笔者以前对散列是什么?哈希又是什么?何谓散列表?散列函数又是个什么东东比较的迷惑。

                    通过看一些书,查找一些资料总算是有一些眉目了,现将相关的知识与体会记录下来。留待日后

                    的再学习!

           基本概念

                          散列表(Hash table,也叫哈希表),是根据关键字(key value)而直接进行访问的数据结构。

                    说的具体点就是它通过吧key值映射到表中的一个位置来访问记录,从而加快查找的速度。

                          实现key值映射的函数就叫做散列函数

                          存放记录的数组就就叫做散列表

                          实现散列表的过程通常就称为散列(hashing),也就是常说的hash

                散列

                           这里的散列的概念不仅限于数据结构了,在计算机科学领域中,散列-哈希是一种对信息的

                     处理方法,通过某种特定的函数/算法(散列函数/hash()方法)将要检索的项与用来检索的索引-

                     -( 散列值)关联起来,生成一种便于搜索的数据结构--散列表。

                           如今,由于散列算法所计算的散列值 具有不可逆(无法逆向演算会原来的数值)的性质,

                     因此散列算法广泛的运用于加密技术。

                           散列的运用:
                                   1、加密散列
                                        在信息安全领域使用
                                   2、散列表
                                         一种使用散列函数将键名和键值关联起来的数据结构
                                   3、关联数组
                                         一种常常使用散列表来实现的数据结构
                                   4、几何散列
                                         寻找相同或相似的几何形状的一种有效方法 

                  散列函数

                              通过上面可以知道,散列技术的实现是基于散列函数的。这里对散列函数进行一个较深

                         入的理解。  前面就知道了散列函数--哈希函数就是完成key值与位置的映射。一般说来key

                         以字符 串的形式居多,位置也就是一个数值。

                              可以看出散列函数就像是实现信息的压缩,把消息字符 串压缩成数值摘要,是数据量

                         变小,格式得以固定下来。

                              散列函数的工作原理图:

                    

                               不过需要注意的是key值和经过散列函数处理之后的散列值并不是唯一对应的,

                        这就造成了不同的key值具有相同的索引位置,这种现象叫做散列碰撞、也称其为哈希冲突。

                        对于hash冲突的解决办法,将在后面予以总结。

  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值