- 1
- 0
- 约小于1千字
- 约 10页
- 2022-09-11 发布于浙江
- 举报
期末考试:第六题
徐臣 171180558
Emmm题目:
首先
若不是一棵BST ,或者有平衡性质的二叉树,在O(logn)的时间里是绝对无法完成的。
考虑极端情况 ,当树退化成链,根为最小值,查找为最大值。
此时无论如何都需要O(n)的时间去访问到叶子
故不可能在O(logn)时间内完成
做法:
题目不要求给出插入/删除的算法,只需要给出第k大的查找,并且是在BST上进行的。
早先学的最朴素的BST肯定是不能做的。
结合BST的结构特性 ,树上一条链的长度恰好是O(logn)的
那么算法很有可能就是在树上向下的遍历(单链)的,这样的复杂度恰好为O(logn)
如何做到单链的查询?
如果要单链,那么肯定没有向上(往根方向的)搜索,那么每一次向下的步骤里,我们都有保证,第k大的元素在这棵我们前往的子树中。
最简单的情况,假设当前我们在根,第k大在右子树的情况当且仅当 左子树里的元素个数+1(根)少于k。
假设左子树大小为i
这等价于根为第i+1大的元素
那么我们只需要在右子树找到比第i+1大的元素大k-(i+1)的元素就行了
否则第k大在左子树,此时和右子树完全没关系,可以直接前往左子树。
算法设计
定义Sz[rt]为rt为根的子树大小
算法为:
Find(tree rt,int index) {
If(Sz[rt-lson]+1==k)
return rt-value
您可能关注的文档
- 骨质疏松性骨折的智能诊疗技术研究及平台建设所需试剂耗材及动物购置项目采购需求.doc
- 肝胆管细胞癌化疗临床路径.PDF
- 医学电子书包-手机考操作步骤(考试码考试).PDF
- 衡水市妇幼保健院医院运营信息化管理及基础信息管理系统招标文件.PDF
- 信阳市中医院信息系统升级扩展建设项目招标文件.PDF
- 2011年高考试卷分析.ppt
- Java语言程序设计笔试题.doc
- 西北政法大学学生线上考试操作手册.PDF
- 夏邑县中医院关于信息化建设系统升级项目招 标 文 件.PDF
- 全身麻醉、镇静下儿童牙病诊疗规范.PDF
- 沪教版五四制六年级上册数学 2分数 分数的大小比较课件2.pptx
- 沪教版五四制六年级上册数学 2分数 分数运算的应用课件1.pptx
- 沪教版五四制六年级上册数学 3比和比例 等可能事件课件1.pptx
- 沪教版五四制六年级上册数学 2分数 分数的加减法课件2.pptx
- 沪教版五四制六年级上册数学 比的基本性质 (3).pptx
- 沪教版五四制六年级上册数学 2分数 分数的乘法课件1.pptx
- 沪教版五四制六年级上册数学 2分数 分数的除法课件1(1).pptx
- 沪教版五四制六年级上册数学 百分数的应用一.pptx
- 护理伦理困境与解决方案.pptx
- 沪教版五四制六年级上册数学 百分比的应用.pptx
原创力文档

文档评论(0)