- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.3对半检索检索树,检索树,二叉检索树,最优二分检索树,trie树字符串检索代码,树形检索,检索表达式树,乙肝两对半对照表,两对半,两对半检查结果分析
* §3. 对半检索 binary search ---- 在有序元集合中查找(MEMBER)的有效方法! * 用混列表,基本操作系列集合|σ|的可期时间仅O(|σ|),但是需要一个好的混列函数(使匀射—难点)。 如果σ只是一系列的MEMBER,那么也可用对半检索。 方法: ---- 把S存入阵列A,并分拣成非降次序,然后对半查找。 * 对半检索算法:MEMBER(a, S): 1. 先把a同S的中间元 比较: 2. 若a=b,则回答“Yes”。 3. 若a<b,便在A的前半重复。 4. 若a>b,便在A的后半重复。 5. 重复以上步骤,一直到找到a或确定表中没有a。 找到a或确定表中没有a,这两种情况比较次数 都不会超过 。(这也是平衡检索树的最大层高) * Procedure SEARCH(a, f, l ) If f>l then return “no” else if then return “yes” else if a< then return SEARCH( a, f, ) else return SEARCH( a, , l ) * 例, 在平衡检索树中,每节放一元,按非降次序: a→b→c→d→e→f→g→h 用居中次序上树:(操作次序为:左子树→根→右子树) * ∴ 最坏时间是: O(|σ|logn) 注: |σ|为系列集合,重复1000次,则|σ|=1000 每次MEMBER是: O(logn) ∴最坏花费是 O(|σ|logn). * §4. 检 索 树 binary search tree ----如果σ只是包含MEMBER、INS、DEL的序列,那么Hashing就很好。但如果同时有MIN,那就可用检索树。 * 下图居中次序排树:每个节的左后代都小于它; 每个节的右后代都大于它; * 例如,C语言关键词(按非降序排列): begin、else、end、if、then 以下都是居中次序检索树(按字典序): 下面介绍操作方法: * 1. MEMBER: 算法4.1: 查找元a 用l(v)来表示节v上的标记label(即S的元),若T空,则回答“no”,否则令v为T的根,用MEMBER(a, v)来调用以下过程。 Procedure SEARCH (a, v) (P.70) 1. if a=l(v) then return “yes” else 2. if a<l(v) then 3. if v 有左子u then return SEARCH (a, u) ---- 递归左子 4. else return “no” else 5. if v有右子w then return SEARCH (a, w) ---- 递归右子 6. else return “no” * 例,要找else, 调SEARCH(else,v):----(此处v为if) 1、2、3 → SEARCH(else,u) (此处u为end) 1、2、3 → SEARCH(else,u) (此处u为begin) 1、2、5 → SEARCH(else,w) (此处w为else) 1 → 找到,return “Yes” * 2. INSERT (a, s): 只需将算法4.1中第4行return “no”改成: l(u) ← a 只需将算法4.1中第6行return “no”改成: l(w) ← a 3. MIN: 找最左子。 * 4. DELETE(a, s): 只需把算法4.1第1行改成: if a=l(v) then DELETE (l(v), S) else
您可能关注的文档
最近下载
- 大小头尺寸对照表.xlsx VIP
- 《高级钳工培训课件-(钳工工艺流程、操作技巧及其安全规范)》.ppt VIP
- 2025年辽宁省中考语文试卷(含答案解析).docx
- 车辆电工(中级工)题库复习题要点 .pdf VIP
- GBT5210-2006色漆和清漆拉开法附着力试验标准.pdf VIP
- 文化旅游产业的发展课件.pptx VIP
- 全省寄生虫病防治技能竞赛理论考试题及答案.doc VIP
- 全市寄生虫病防治技术竞赛理论考试题库及答案.docx VIP
- RBA8.0手册+程序文件+表单(格式可转换WORD).pdf VIP
- 典范英语4a Lesson3 The Camcorder课件.pptx VIP
文档评论(0)