首页 > 职业技能鉴定
题目内容 (请给出正确答案)
[主观题]

求最优二叉搜索树算法的时间复杂度为O(n2),下面给出一个求拟最优二叉搜索树的试探算法,

求最优二叉搜索树算法的时间复杂度为O(n2),下面给出一个求拟最优二叉搜索树的试探算法,

可将算法的时间复杂度降低到O(nlog2n),算法的思想是对于关键码序列(keylow,keylow+1,…,keyhigh),轮流以keyk为根,k=low,low+1,…,h,求使得|W[low-1][k-1]-W[k][high]|达到最小的k,用keyk作为由该序列构成的拟最优二叉搜索树的根。然后对以keyu为界的左子序列和右子序列,分别施行同样的操作,建立根keyk的左子树和右子树,试编写一个函数,实现上述试探算法。要求该函数的时间复杂度应为O(nlog2n)。

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“求最优二叉搜索树算法的时间复杂度为O(n2),下面给出一个求…”相关的问题
第1题
所谓半无穷范围查询(semi-infinite range query),是教材8.4节中所介绍一般性范围查询的特例,具

所谓半无穷范围查询(semi-infinite range query),是教材8.4节中所介绍一般性范围查询的特例,具体地,这里的查询区域是某一侧无界的广义矩形区域,比如R=[-1,+1]x[0,﹢∞),即是对称地包含正半y坐标轴、宽度为2的一个广义矩形区域,当然,对查询的语义功能要求依然不变——从某一相对固定的点集中,找出落在任意指定区域R内部的所有点。

范围树(176页习题[8-20])稍作调整之后,固然也可交持半无穷范围查询,但若能针对这一特定问题所固有的性质,改用优先级搜索树(priority search tree,PST)之类的数据结构,则不仅可以保持O(r+logn)的最优时间效率,而且更重要的是,可以将空间复杂度从范围树的O(nlogn)优化至O(n)。

如图x10.3所示,优先级搜索树除了首先在拓扑上应是一棵二叉树,还同时遵守以下三条规则。

①首先,各节点的y坐标均不小于其左右孩子(如果存在)——因此,整体上可以视作为以y坐标为优先级的二叉堆。

②此外,相对于任一父节点,左子树中节点的x坐标均不得大于右子树中的节点。

③最后,互为兄弟的每一对左、右子树,在规模上相差不得超过一。

a)试按照以上描述,用C/C++定义并实现优先级搜索树结构;

b)试设计一个算法,在O(nlogn)时间内将平面上的n个点组织为一棵优先级搜索树;

c)试设计一个算法,利用已创建的优先级搜索树,在O(r+logn)时间内完成每次半无穷范围查询,其中r为实际命中并被报告的点数。

点击查看答案
第2题
在无向连通图中,最长的通路称作其直径(diameter),试基于广度优先搜索的框架,设计并实现一个查找直径的算法,要求时间复杂度为o(n+e)。

点击查看答案
第3题
试证明:a)按照二叉搜索树的基本算法在AVL树中引入一个节点后,失衡的节点可能多达Ω(logn)个;b)按照二叉搜索树的基本算法从AVL树中摘除一个节点后,失衡的节点至多1个。

点击查看答案
第4题
设在一棵二叉搜索树的每个结点中,含有关键码key域和统计相同关键码结点个数的count域,当向该
树插入一个元素时,若树中已存在与该元素的关键码柑同的结点,则就使该结点的count域增1,否则就由该元素生成一个新结点而插入到树中,并使其count域置为1,试按照这种插入要求编写一个算法。

点击查看答案
第5题
已知有实现同一功能的两个算法,其时间复杂度分别为O(2n)和O(n10),假设计算机可连

已知有实现同一功能的两个算法,其时间复杂度分别为O(2n)和O(n10),假设计算机可连续运算的时间为107秒(100多天),又每秒可执行基本操作(根据这些操作来估算算法时间复杂度)105次,试问在此条件下,这两个算法可解问题的规模(即n值的范围)各为多少?哪个算法更适宜?请说明理由。

点击查看答案
第6题
中序遍历迭代式算法的第三个版本(教材131页代码5.18),需反复地调用succ()接口以定位直接后继,从而会相应地增加计算成本。试问,该算法的渐进时间复杂度是否依然保持为o(n)?若是,请给出证明;否则试举一例。

点击查看答案
第7题
下列哪一个说法是错误的()。

A.空间复杂度为O(1)是指算法只占用一个临时存储单元

B.时间复杂度通常是指最坏情况下的时间复杂度

C.所用编程语言和输入数据都相同时,2个算法分别在同一台计算机上运行,花费时间较长的算法可能具有更低的时间复杂度

D.同一个算法,分别用编译型语言和解释型语言编写为程序,后者运行耗时可能更少

点击查看答案
第8题
试说明,即便计入向量扩容所需的时间,就分摊意义而言,GraphMatrix::insert(v)算法的时间复杂度依然不超过o(n)。

点击查看答案
第9题
以二叉链表作为二叉树的存储结构,编写以下算法:(1)统计二叉树的叶结点个数。(2)设计二叉树的双
以二叉链表作为二叉树的存储结构,编写以下算法:(1)统计二叉树的叶结点个数。(2)设计二叉树的双

以二叉链表作为二叉树的存储结构,编写以下算法:

(1)统计二叉树的叶结点个数。

(2)设计二叉树的双序遍历算法(双序遍历是指对于二叉树的每一个结点来说,先访问这个结点,再按双序遍历它的左子树,然后再一次访问这个结点,接下来按双序遍历它的右子树)。

(3)计算二叉树最大的宽度(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。

(4)用按层次顺序遍历二叉树的方法,统计树中具有度为1的结点数目。

(5)求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值。

(6)输出二叉树中从每个叶子结点到根结点的路径。

点击查看答案
第10题
问题描述:试设计一个用回溯法搜索子集空间树的函数.该函数的参数包括结点可行性判定函数和上
界函数等必要的函数,并将此函数用于解装载问题.

装载问题描述如下:有一批共n个集装箱要装上艘载重量为c的轮船,其中集装箱i的重量为wi.找出一种最优装载方案,将轮船尽可能装满,即在装载体积不受限制的情况下,将尽可能重的集装箱装上轮船.

算法设计:对于给定的n个集装箱的重量和轮船的重量,计算最优装载方案.

数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和c,n是集装箱数,c是轮船的载重量.接下来的1行中有n个正整数,表示集装箱的重量.

结果输出:将计算的最大装载重量输出到文件output.txt.

点击查看答案
第11题
以二叉链表为存储表示,试编写一个算法,用括号形式key(LT,RT)输出二叉树的各个结点。其中,key是
以二叉链表为存储表示,试编写一个算法,用括号形式key(LT,RT)输出二叉树的各个结点。其中,key是

根结点的数据,LT和RT是括号形式的左子树和右子树。要求空树不打印任何信息,一个结点的树的打印形式是x,而不应是(x,)的形式。

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改