严蔚敏数据结构第9章查找1 - 中国网页设计.ppt

严蔚敏数据结构第9章查找1 - 中国网页设计.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
严蔚敏数据结构第9章查找1 - 中国网页设计

数 据 结 构 (C语言版) 严蔚敏、吴伟民编著 清华大学出版社 学习网站:中国网页设计 /list.asp?id=301 第九章 查找表 授课教师:姬广永 int Search_Seq(SSTable ST, KeyType kval) { // 在顺序表ST中顺序查找其关键字等于kval的数据元素。 //若找到,则函数值为该元素在表中的位置,否则为0。 } int Search_Seq(SSTable ST, KeyType kval) { // 在顺序表ST中顺序查找其关键字等于kval的数据元素。 //若找到,则函数值为该元素在表中的位置,否则为0。 for (int i=1; (i=ST.length)(ST.elem[i].key!=kval); i++){} if(i=ST.length) return i; else return 0;// 找不到时,i为0 } 考虑查找不成功的情况 则顺序查找的平均查找长度:(假设查找成功和不成功的概率相同) ASL=(查找成功时的平均查找长度)/2+(查找不成功时的平均查找长度)/2= (n+1)/4+(n+1)/2=3(n+1)/4 在本章节以后各节,只讨论查找成功时的平均查找长度和查找不成功时的比较次数。 折半查找: (1)mid= (low+high)/2 (2)比较 ST.elem[mid].key = = key? 如果 ST.elem[mid].key = = key,则查找成功, 返回mid值 如果 ST.elem[mid].key key,则置high=mid-1 如果 ST.elem[mid].key key,则置low=mid+1 (3)重复计算mid 以及比较ST.elem[mid].key与 key, 当lowhigh时,表明查找不成功,查找结束。 int Search_Bin(SSTable ST,KeyType key) { } 3.二叉排序树的插入 根据动态查找表的定义,“插入”操作在查找不成功时才进行; 四、索引顺序表 索引顺序表 = 索引表 + 顺序表 索引顺序表:也叫分块有序表 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 22 12 13 8 9 20 33 42 44 38 24 48 60 58 74 57 86 53 22 48 86 1 7 13 索引表 查38 索引顺序表:也叫分块有序表 长度为n的表,均分成b块,每块含s个记录。 索引顺序查找的平均查找长度 = 查找“索引”的平均查找长度 + 查找“顺序表”的平均查找长度 即:ASLbs=Lb+Ls =(b+1)/2+(s+1)/2=(b+s)/2+1 长度为n的表,均分成b块,每块含s个记录, 所以b= n/s。 ASL 最大 最小 两者之间 表结构 有序表、无序表 有序表 分块有序表 存储结构 顺序存储结构 线性链表 顺序存储结构 顺序存储结构 线性链表 查找方法比较 顺序查找 折半查找 索引查找 思考题: 问:能否使用单链表结构进行折半查找? ——无法实现!因全部元素的定位只能从头指head开始 (多选题)使用折半查找算法时,要求被查文件: A.采用链式存贮结构 B.记录的长度≤12 C.采用顺序存贮结构 D.记录按关键字递增有序 9.2 静态查找表 9.3 动态查找表 9.4 哈希表 9.1 基本概念 第九章 查找表 9.3 动态查找树表 特点: 表结构本身在查找过程中动态产生;即对于给定的值key,若表中存在关键字等于key的记录,则查找成功返回,否则插入关键字等于key的记录。 采用非线性存储结构; 一、二叉排序树(二叉查找树) 二、平衡二叉树 一、二叉排序树(二叉查找树) 1.定义 2.查找 3.插入 4.删除 5.查找性能的分析 (1)若它的左子树不空,则左子树上 所有结点的值均小于根结点的值; 1.定义: 二叉排序树或者是一棵空树;或者 是具有如下特性的二叉树: (3)它的左、右子树也都分别是二叉 排序树。 (2)若它的右子树不空,则右子树上 所有结点的值均大于根结点的值; 50 30 80 20 90 10 85 40 35 25 23 88 例如: 是二叉排序树。 66

文档评论(0)

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

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

1亿VIP精品文档

相关文档