DSC9静态表的查找.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
作 业 27. 试从空树开始,按以下顺序向2-3树中插入关键字建树:20,30,50,52,60,68,70。如果此后再删去50和68,画出每一步执行后的状态。 §9.3 散列表查找 前面所介绍的查找方法的查找效率各不相同,且相适应的查找表也不一样,但都有一个共性,即平均查找长度不会为 1。那么有没有办法使平均查找长度等于 1,即一次查找成功呢? 散列表(Hash table)的查找就是为了解决这个问题而提出的。 散列表是如此构造的:给定一个线性表空间,选取一 个自变量为关键字的映射函数,其函数值为关键字在线性表空间中的存储位置,关键字经该函数映射后即可存储到线性表空间中;查找时也用相同的方法即可找到该记录。 该线性表空间即称为散列表(也叫哈稀表),所选取的函数称为散列函数(Hash function),得到的函数值称为散列地址,得到散列地址的过程称为哈稀造表或散列。 理论上散列表查找成功的平均查找长度 ASL成功 = 1。 但实际上经常会遇见这样的情况:不同的两个关键字经过散列函数运算后所得到的散列地址相同,这种现象称为冲突(collision),而产生冲突的两个关键字对该散列函数而言称为同义词(synonym)。 我们应尽可能选取冲突少的散列函数,但不能完全避免冲突的产生,而有了冲突就需要找相应的解决办法。 * 第九章. 查找 (Chapter 9. Searching) 查找运算是计算机中最常用的操作之一。有人统计过,计算机大约有40%的运算是与查找相关的。 数据元素(或记录)的某个数据项,能用来标识一个数据元素。若能唯一的标识一个数据元素, 则称为主关键字(primary key),反之则为次关键字(secondary key)。 关键字(key) 查找表(search table) §9.1 静态表的查找 查找(searching) 根据某个给定的值,在查找表中找寻关键字等于给定值的数据元素(或记录)。若表中存在这样的数据元素,则称查找是成功的,查找结果即为查找到的数据元素;反之则称查找是不成功的,此时查找结果为空。 由同一类型的数据元素(或记录)构成的集合。表中的元素基本上是固定的,这类查找表称为静态查找表(static search table);若在查找过程中将不存在的元素插入查找表中,则称这类查找表为动态查找表(dynamic search table)。 实际查找时,通常将给定值放在第 0 个记录处,然后从后向前查找,直到找到所查记录为止,找不到则返回结果 0。因为记录 0 像哨兵一样看守着查找表下界,所以不会越界。 typedef struct { keytype key; . . . . . . } elemtype; 一、无序表的查找: 查找表中的各元素(或记录)的关键字的值是无序的。 typedef struct { elemtype * elem; int length; } sstable; int seqsearch ( sstable R, keytype K ) { R.elem[0].key := K; for ( i = R.length ; R.elem[i].key != K ; i -- ) ; return i; } 查找表的长度为 n: 查找性能分析: 平均查找长度(average search length) 为了确定记录在查找表中的位置,需与给定值比较的关键字的个数的期望值称为平均查找长度。 对含有 n 个记录的查找表,查找成功时的平均查找长度为: ASL = ∑PiCi ,其中Pi为查找第i个记录的概率,且∑Pi = 1。 n i=1 i=1 n 在等概率情况下,顺序查找无序表的平均查找长度为: ASL成功 = (n+1) / 2 和 ASL不成功 = n+1 。 二、有序表的查找: 查找表中的各元素(或记录)的关键字的值是有序的。 这类有序表的查找仍可以用顺序查找,但在找不到时不需比较到表尾,只需比较到比给定值大的记录就可终止。 在等概率情况下,顺序查找有序表的平均查找长度为: ASL成功 = (n+1) / 2 和

文档评论(0)

荔力 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档