联系hashgameCONTACT hashgame
地址:广东省广州市
手机:13988889999
电话:020-88889999
邮箱:admin@qq.com
查看更多
Rhashgamehashgame
你的位置: 首页 > hashgame

数据结构课件第28讲哈希查找表pdfHASH GAME - Online Skill Game ET 300

发布时间:2025-01-28 12:55:39  点击量:

  HASH GAME - Online Skill Game GET 300

数据结构课件第28讲哈希查找表pdfHASH GAME - Online Skill Game GET 300

  哈希查找概念  基本思想  在记录的 地址和它的关键字之间建立一个确 定的对应关系;这样,不经过比较,一次存取就 能得到所查元素的查找方法 哈希查找概念  哈希函数  在记录的关键字与记录的 地址之间建立的一 种对应关系叫哈希函数。  哈希函数是一种映象,是从关键字空间到 地址空 间的一种映象  哈希函数可写成:addr(ai)=H(ki)  ai是表中的一个元素  addr(ai)是ai的 地址  ki是ai的关键字 关键字 hash 地址 集合 集合 哈希查找概念  哈希查找  利用哈希函数进行查找的过程叫哈希查找,又叫 散列查找。  哈希表  应用哈希函数,由记录的关键字确定记录在表中 的地址,并将记录放入此地址,这样构成的表叫 哈希表。 例 30个地区的各民族人口统计表 编号 地区别 总人口 …... 1 2 … ….. . . . . 以地区别作关键字,取地区 以编号作关键字, 名称第一个 字母的序号 构造哈希函数:H(key)=key 作哈希函数:H(Beijing)=2 H(1)=1 H(Shanghai)=19 H(2)=2 H(Shenyang)=19 哈希查找概念  注意事项  哈希函数只是一种映象,所以哈希函数的设定很灵活, 只要使任何关键字的哈希函数值都落在表长允许的范围 之内即可。  :key1key2,但H(key1)=H(key2)的现象叫~  同义词:具有相同函数值的两个关键字,叫该哈希函数 的同义词。  哈希函数通常是一种压缩映象,所以 不可避免,只 能尽量减少;同时, 发生后,应该有处理 的方 法。 哈希函数的构造方法  直接定址法  构造:取关键字或关键字的某个线性函数作哈希 地址,即H(key)=key 或 H(key)=a·key+b  特点 直接定址法所得地址集合与关键字集合大小相等,不 会发生 实际中能用这种哈希函数的情况很少 哈希函数的构造方法  数字分析法  构造:对关键字进行分析,取关键字的若干位或 其组合作哈希地址。  适于关键字位数比哈希地址位数大,且可能出现 的关键字事先知道的情况。 例 有80个记录,关键字为8位十进制数,哈希地址为2位十进制数 …     . . 分析: 只取8 只取1 只取3、4 只取2、7、5 数字分布近乎随机 所以:取任意两位或两位 8 1 4 1 9 3 5 5 与另两位的叠加作哈希地址 … . . 哈希函数的构造方法  平方取中法  构造:取关键字平方后中间几位作哈希地址。  适于不知道全部关键字情况。  折叠法  构造:将关键字分割成位数相同的几部分,然后取这几 部分的叠加和 (舍去进位)做哈希地址。  种类  移位叠加:将分割后的几部分低位对齐相加。  间界叠加:从一端沿分割界来回折送,然后对齐相加。  适于关键字位数很多,且每一位上数字分布大致均匀情 况。 例 关键字为 :,哈希地址位数为4 5 8 6 4 5 8 6 4 4 2 2 0 0 2 2 4 0 4 移位叠加 0 4 间界叠加 1 0 0 8 8 6 0 9 2 H(key)=0088 H(key)=6092 哈希函数的构造方法  除留余数法  构造:取关键字被某个不大于哈希表表长m的数p除后所 得余数作哈希地址,即H(key)=key MOD p,pm  特点  简单、常用,可与上述几种方法结合使用  p的选取很重要;p选的不好,容易产生同义词, 选p为小于或等 于哈希表表长m的某个最大质数为好  随机数法  构造:取关键字的随机函数值作哈希地址,即 H(key)=random(key)  适于关键字长度不等的情况 哈希函数的构造方法  选取哈希函数,考虑以下因素:  计算哈希函数所需时间  关键字长度  哈希表长度 (哈希地址范围)  关键字分布情况  记录的查找频率 处理 的方法  开放定址法  方法:当 发生时,形成一个探查序列;沿此序列逐 个地址探查,直到找到一个空位置 (开放的地址),将 发生 的记录放到该地址中,即Hi=(H(key)+di)MOD m,i=1,2,……k(km-1) 其中:H(key)——哈希函数 m——哈希表表长 di——增量序列  分类  线  二次探测再散列:di=1²,-1²,2²,-2²,3²,……±k²(km/2)  伪随机探测再散列:di=伪随机数序列 例 表长为11的哈希表中已填有关键字为17,60,29的

【返回列表页】

顶部

地址:广东省广州市  电话:020-88889999 手机:13988889999
Copyright © 2018-2025 哈希游戏(hash game)官方网站 版权所有 非商用版本 ICP备案编: