西安科技大学《计算机软件基础》三基本查找及Hash(--).pptVIP

西安科技大学《计算机软件基础》三基本查找及Hash(--).ppt

  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文档。上传文档
查看更多
西安科技大学《计算机软件基础》三基本查找及Hash(--)

回 顾 第二章 第二章基本数据结构及运算 1 数据结构的基本概念 2 线性表及其顺序存储结构 3 线性链表及其运算 4 数组 5 树与二叉树 6 图 第三章 查找和排序 3.1. 查找△: 3.2. hash表技术 3.3 基本排序技术△ 3.4.二叉排序树及其查找 3.5多层索引树及查找 3.1 查找 3.1.1顺序查找 3.1.2有序表对分查找 3.1.3分块查找 3.1.1 顺序查找 3.1.1 顺序查找 1. 顺序查找的方法: 用待查关键字值与线性表中各结点的关键字值逐个比较,直到找出相等的关键字值;或找遍所有结点都找不到,即查找失败。 2. 顺序查找的效率 顺序查找的优点是对线性表结点的逻辑次序无要求,对线性表的存储结构无要求,缺点是平均检索长度为n/2。 3. 两种情况下只能采用顺序查找: 线性表为无序表; 采用链式结构的有序线性表。 2. 顺序查找算法 int Search (ET v[ ], int n, ET x) { int j; while ((kn)(v[k]!=x)) k=k+1; If(k==n) k=-1; return (k); } 3.1.2 有序表的对分查找 1 有序表对分查找 1. 只适用于顺序存储有序线性表,即元素按值非递减(或递减)排列。 2. 对分查找方法: 设线性表长度为n,用要查找的元素值X与中间位置结点的元素值W相比较: (1)X=W,此时已经查找成功,查找结束。 (2)XW,表明X在表的后半部分,取后半部分进行查找 (3)XW,表明X在表的前半部分,取前半部分进行查找 2 有序表对分查找方法 举例:在下列数据中查找 元素26: 3. 有序表对分查找算法描述 int BinSearch (SQLIST L, int key) { int low, high, mid; low=0; high=L.len-1; while (low=high) { mid=(low+high)/2; if (L.elem[mid]==key) return mid; if (L.elem[mid]key) high=mid-1; if (L.elem[mid]key) low=mid+1; } return -1; } 3.1.3 分块查找(索引顺序查找) 1. 分块有序表△: 指将长度为n的线性表分成m个子表,各子表的长度可以相等,也可以不等,但要求后一个子表中的每一个元素大于前一个子表中的所有元素。 两部分: 1.线性表本身采用顺序存储结构 2.再建立一个索引表,用于每个子表建立一个索引结点,包括指针域和数据域。 2 分块有序表组成 3. 查找步骤 分块有序查找步骤: 首先,在索引表中查找,确定子表。可以采用对分查找。 然后,再相应的子表中进行顺序查找。 3.1 分块查找的索引结点结构 Struct indnode { ET Key; int k; } 3.2 哈希表技术 3.2.1哈希表的基本概念 3.2.2几种常用的哈希表 哈希表 直接查找技术,无需通过比较 直接查找技术的推广,其目标是为了提高查找效率 3.2.1 Hash表的基本概念 Hash表理解 直接查找技术 Hash表 哈希表的构造 ①理解Hash查找 Hash查找理解:指形式上杂乱无章,没有规律的一组元素队列。与前面所述的查找不同,Hash表技术可以直接确定被查元素在表中的位置,按理论分析真正不需要用到比较的一种查找方法。 即在记录的存储地址和它的关键字之间建立一个确定的对应关系;这样,不经过比较,一次存取就能得到所查元素的查找方法。 ② 直接查找技术 哈希查找,也称为散列查找。它既是一种查找方法,又是一种存贮方法,称为散列存贮。散列存贮的内存存放形式也称为散列表(Hash表) ②直接查找技术 设表的长度为n,若存在一个函数i=i(k),对于表中任意一个元素的关键字k,满足以下条件: A:1≤i≤n B:对于任意元素关键字k1≠k2,恒存在 i(k1) ≠i(k2) 称此表为直接查找表。 关键字:k 映象函数i(k) ②直接查找技术 ①举例: 假设有一批关键字序列18,75,60,43,54,90,46,给定哈希函数:H(k)=k%13, 存贮区的内存地址从0到15,则可得关键字哈希地址: ③哈希表 根据设定的哈希函数 i(key) 和所选中的处理冲突的方法,将一组关键字映象到一个有限的、地址连续的地址集 (区间) 上,并以关键字

文档评论(0)

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

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

1亿VIP精品文档

相关文档