- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
20131227_125239_822707_数据结构严老师_chapter9
* * 第五章 查找 第0节 基本概念 第一节 静态查找表 第二节 动态查找表 第三节 哈希表 第0节 基本概念 查找表 静态查找表 动态查找表 关键字 查找 查找表的存储结构 查找算法的时间效率 第0节 基本概念 查找表 静态查找表 动态查找表 关键字 查找 查找表的存储结构 查找算法的时间效率 用于查找的数据元素集合称为查找表。查找表由同一类型的数据元素(或记录)构成。 第0节 基本概念 查找表 静态查找表 动态查找表 关键字 查找 查找表的存储结构 查找算法的时间效率 若只对查找表进行如下两种操作:(1)在查找表中查看某个特定的数据元素是否在查找表中,(2)检索某个特定元素的各种属性,则称这类查找表为静态查找表。静态查找表在查找过程中查找表本身不发生变化。 第0节 基本概念 查找表 静态查找表 动态查找表 关键字 查找 查找表的存储结构 查找算法的时间效率 若在查找过程中可以将查找表中不存在的数据元素插入,或者从查找表中删除某个数据元素,则称这类查找表为动态查找表。动态查找表在查找过程中查找表可能会发生变化。 第0节 基本概念 查找表 静态查找表 动态查找表 关键字 查找 查找表的存储结构 查找算法的时间效率 在数据元素集合中查找满足某种条件的数据元素的过程称为查找。最简单且最常用的查找条件是“关键字值等于某个给定值”,在查找表搜索关键字等于给定值的数据元素(或记录)。 第0节 基本概念 查找表 静态查找表 动态查找表 关键字 查找 查找表的存储结构 查找算法的时间效率 查找表是一种非常灵活的数据结构,对于不同的存储结构,其查找方法不同。为了提高查找速度,有时会采用一些特殊的存储结构。 第0节 基本概念 查找表 静态查找表 动态查找表 关键字 查找 查找表的存储结构 查找算法的时间效率 查找过程的主要操作是关键字的比较,所以通常以“平均比较次数”来衡量查找算法的时间效率。 第0节 基本概念 关键字类型说明 typedef int KeyType; 或者 typedef float KeyType; 或者 typedef char * KeyType; 数据元素类型定义: typedef struct{ KeyType key; 其他域; }ElemType; 第一节 静态查找表 顺序表 链表 第一节 静态查找表 顺序表 链表 可以是顺序表,也可以是链表,依次用查找条件中给定的值与查找表中数据元素的关键字值进行比较,若某个记录的关键字值与给定值相等,则查找成功,返回该记录的存储位置,反之,若直到最后一个记录,其关键字值与给定值均不相等,则查找失败,返回查找失败标志。 int Search_Seq(SSTable ST, KeyType key) { // 算法9.1 // 在顺序表ST中顺序查找其关键字等于key的数据元素。 // 若找到,则函数值为该元素在表中的位置,否则为0。 int i=0; ST.elem[0].key=key; // 哨兵 for (i=ST.length; ST.elem[i].key!=key; --i); // 从后往前找 return i; // 找不到时,i为0 } // Search_Seq 9.1.1 顺序表的查找 Typedef struct { ElemType *elem; //存储空间基址 int length ; } SSTable; 9.1.2 有序表的查找 折半查找:按顺序表方法存储的已经按关键字排好序 的线性表。 int Search_Bin ( SSTable ST, KeyType key ) { // 算法9.2 // 在有序表ST中折半查找其关键字等于key的数据元素。 // 若找到,则函数值为该元素在表中的位置,否则为0。 int low, high, mid; low = 1; high = ST.length; // 置区间初值 while (low = high) {
文档评论(0)