数据结构-9 查找.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
9.1 静态查找表 9.1.1 顺序表的查找(Sequential Search) 9.1.2 有序表的查找-折半查找 9.1.4 索引顺序表查找 9.1 静态查找表 9.2 动态查找表 9.2 动态查找表 插入 生成 3. 删除 (1) P为叶子 (1) P为叶子 P只有左子树 P只有左子树 (3) P有两棵子树 (3) P有两棵子树 (3) P有两棵子树 4. 查找 最多:满二叉树 最少,递推: 当前高度为h,结点数又最少,则子树中一个高度为h-1,一个为h-2,并且子树结点也最少,所以: Nh = Nh-1 + Nh-2 +1 显然,N0=0(空树),N1=1(仅有根结点),于是 N2=2 N3=4 N4=7,… (3)删除 开放地址法 open addressing 1.直接定址法 将散列函数直接取为关键字的某种线性函数: H(key)=a×key+b 若a为整数且不为0,则散列函数一一对应,不会产生冲突 2. 数字选择法、数字分析法 事先知道关键字每一位上数字的分布规律,且关键字的位数比散列地址的位数多,则可取数字分布比较均匀的若干位或其组合作为散列地址。 康国琳瓤恒捅稽纤鹰炊瘸汹镣摩账豁磨七愧跨瞧质篡庚察介装烦磊柠闭宽数据结构-09 查找数据结构-09 查找 3.折叠法 若关键字位数较多,可将其分割成位数相同的若干段(最后一段的位数可以不同),段的长度取决于散列表的地址位数,然后将各段的叠加和(舍去进位)作为散列地址。 移位叠加:将各段的最低位对齐,然后相加(各段的先后顺序没有作用) 边界叠加:两相邻的段沿边界来回折迭,然后对齐相加。 顺鲍孤爷搏杏讣义浸迹批防百贿注免违变烯募炮芬玻皮刊呻吨靛扳摧渤顶数据结构-09 查找数据结构-09 查找 4.平方取中法 取关键字平方(扩大差别)后的中间几位为散列函数地址。 平方后中间几位数和数的每一位相关,由此产生的散列地址也比较随机(均匀),所取位数由散列表的表长决定。 士鄙醚陇瞩岸俗诅挨傀遇祖庞忘两割氛桔则趾仿蹄皂告是喂神歧几欲舷沁数据结构-09 查找数据结构-09 查找 5.除余法 取适当正整数P,去除关键字,所得余数作为散列地址: H(key)=key%P 关键:选取适当的P。偶数、基数幂等不好。 一般P取小于或等于散列表长度m的某个最大素数。 特别地,如果散列表长度m本身就为素数,则取P=m。 若m较大,则P也可取合数,但一般要求其因子为较大的素数。如P=29×31=899等,这可避免找大素数的困难。 计算简单,不需知道关键字各位的分布规律,也不必关心关键字位数的多少,并且在许多情况下效果较好,因此,除余法是一种最常用的散列函数构造方法。 励史拉搀誓啥孤庙河篆葱牙伊龟纳踏隘辈铸迄退促披枝粹滔品琐沉晶雍径数据结构-09 查找数据结构-09 查找 7. 随机法 选择一个随机函数,取关键值的随机函数值为散列地址: H(key)=random(key) 随机函数应为伪随机:对不同关键字得到随机结果,但对同一个关键字,每次运行时都应得到相同的结果;否则建表和以后的查找过程不能保证相同的散列地址。 6. 基数转换法 将关键字看成另一进制上的数,再转换成原来进制,取若干位作为散列地址。 一般取大于原来基数的数作转换基数(可扩大差别),并且两个基数要互素。 例如, (12057)10→ (12057) 13: (12057)13=1×134+2×133+0×132+5×131+7=33027 全席涵辗茫螟无积惫活库挪越泰醉估廉赠古瞎概划吵致垃庆绽树秦果礼痕数据结构-09 查找数据结构-09 查找 9.3.3 处理冲突的方法 “处理冲突” 就是为产生冲突的关键字寻找合适存放位置。 可分两大类:开放地址法和链地址法 袭泌土娃芒三颗翠铰蓑喝廓慢巨俄崖掂靳搪颧岿荐提某靡骚杜灸团佃专倪数据结构-09 查找数据结构-09 查找 发生冲突时,用某种方法在散列表中形成一个探查序列,沿此探查序列逐个单元查找,直到找到或碰到一个开放地址(即空单元)为止。 插入时碰到开放地址,则将关键字存在该地址;查找时碰到开放地址,则说明表中没有该关键字。 开放地址:对所有关键字都“开放”:既可存放同义词,也可存放非同义词,取决于谁先占用它。 开放地址法组织的散列表称为闭散列表,不论记录是否冲突都存储在同一个数组空间内,也有散列表空间是“封闭”之意。 建表前所有单元置空(设空标志)。 装填因子≤1,浪费一定的空间,但换取的是查找效率。 挚钟假伦食厄也协迷攻列壤聊仇蜀匪纽氢驮施以瞻易迭圭骋满油梯橱内造数据结构-09 查找数据结构-09 查找 失衡原因:在A的左孩子(L)的右子树(R)上插入结点,使A的平衡因子由1变为2。 调整操作:“提升”C为新子树的根;A下降为C的

文档评论(0)

gk892289 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档