
高级数据结构与算法
文章平均质量分 94
博学者普克尔特
你渴求力量,而我赠予你知识
展开
-
高级数据结构与算法期中测试题
尽管它需要额外的存储空间来存储临时数组,但在大多数情况下,这个额外的空间是可以接受的,而且 Merge Sort 在大型数据集上的性能通常是很好的,故D错误。而第三层为max选择为a和b中的更大者,那么为了保证a和b的父节点要比左侧的父节点(68)大,则我们让a比68大,故选D。在合并操作期间,由于子树的重新排列,重节点可能会改变它们的重/轻状态。在动态规划算法中,必须存储子问题的某些结果,因为他们可能需要用来做进一步的比较来产生更大问题的最优解,无论它们最终能不能构成更大问题的最优解,都需要把结果存储。原创 2024-04-29 19:05:39 · 1240 阅读 · 0 评论 -
高级数据结构与算法习题(10)
虽然如果 Q 在 NP 中,那么从 Q 到 SAT 的多项式时间归约将存在,但是有多项式时间算法解决 Q 并不一定意味着存在多项式时间算法解决 SAT。如果 SAT(布尔可满足性问题)可以在多项式时间内解决,那么任何属于 NP 的问题 Q 都可以在多项式时间内归约到 SAT,并使用 SAT 的多项式时间算法解决。由于 Q 在 NP 中,所以它可以在多项式时间内验证,因此如果 SAT 可以在多项式时间内解决,那么 Q 也可以。等价于reduce to,复杂的如果是NP,那么简单的也是NP。原创 2024-05-04 11:48:03 · 742 阅读 · 0 评论 -
高级数据结构与算法习题(9)
解析:F。设S是活动选择问题中的一组活动。那么,S的相互兼容活动必须有一些最大大小的子集,其中包括最早完成的活动am。但是并不是最早完成活动am必须包括在S的所有相互兼容活动的最大规模子集中。解析:T。根据哈夫曼树的性质,对于字符集大小为 n 的情况,任何一个字符的最优编码长度不会超过 n-1。这是因为在哈夫曼树中,从根节点到叶子节点的路径长度即为该字符的编码长度,而哈夫曼树的最短路径长度为 1,最长路径长度为 n-1。原创 2024-05-04 11:02:55 · 1714 阅读 · 1 评论 -
高级数据结构与算法习题(8)
解析:D。题中说的是对于现有确定长度的杆子的分段出售问题,自然是可以用动态规划算法来处理,A正确。而对于我们该如何切分杆子,我们自然是需要对于其每一种长度进行遍历,因此我们可以给出这样的表格:表格中第一行表示我们现有的杆子的总长度L,而第一列表示我们在要求最大长度不大于M的情况下的最优分配方式。我们把总长度为L,要求最大长度不大于M的最优分配方式记作(L,M),存放在第M行的第L个格子中(计算格子不包括坐标轴)。原创 2024-04-17 16:27:12 · 1171 阅读 · 0 评论 -
高级数据结构与算法习题(7)
根据主定理,问题的总体时间复杂度可以根据 \( f(N) \) 的形式确定。在这种情况下,\( a = 3 \)(因为问题被分成 3 个子问题),\( b = 3 \)(因为每个子问题的大小为 \( N/3 \)),\( f(N) = O(N^2 \log N) \)。对比所有选项,要么分成了更少复杂度更低的子问题,要么每个子问题的解决步骤具有更低的时间复杂度,都不如选项 C 的3个复杂度N/2的子问题且要O(N)时间复杂度来解决高,故选C。排序步骤:分别对每个部分进行排序,每个部分的排序复杂度是。原创 2024-04-16 00:23:26 · 646 阅读 · 0 评论 -
高级数据结构与算法习题(6)
一、单选题OX解析:A。我们可以尝试将空全部填上:从人的角度看,我们把空全部填上“X”,可以得到有横向第2行,纵向第3列,左上到右下方向上的斜线这三种赢法;从电脑的角度看,我们把空全部填上“O”,可以得到有横向第1行,横向第3行,纵向第1列这三种赢法。故结果为:3-3=0,选A。解析:C。我们在进行运算时进行剪枝是由于不会选它的父亲了,因此不需要考虑其任意分支下的情况才将其剪枝。而根据的原则,必须先遍历左孩子,然后是根,最后才是右孩子。因此只可能是右孩子被剪枝,故选C。二、编程题。原创 2024-04-03 20:41:00 · 1210 阅读 · 0 评论 -
高级数据结构与算法习题(5)
由于题中说为必不成立的,则我们试图给出使下面选项成立的例子:从低位开始合并,首先H1的{13}和H2的{4}合并变成B1,得到的{4,13}可以和H2的{15,18}合并为B2,而得到的{4,13,15,18}可以和H2的{2,11,29,55}或者H1的{23,51,24,65}合并,若选择后者,此时13和15就是4的子节点,故B成立。对于D,说明是将{4,13,15,18}和H2的{2,11,29,55}合并,则{23,51,24,65}为单独存在的B2不参与合并,此时23是根节点,D不成立。原创 2024-03-27 20:32:13 · 1084 阅读 · 0 评论 -
高级数据结构与算法习题(4)
D选项的谬误我们可以采用归纳的思想来解释:假如我们有若干个大小为1的堆需要合并,那么我们第一步先将大小为1的堆两两合并,之后将得到的大小为2的堆两两合并.....以此类推。斜堆对于右路径的限制在于其长度需要小于左路径,而并没有具体数值的限制,所以自然可以做到无限长。我们可以采用数学归纳的思路处理这个问题:假设这个条件对于k = r成立,则对 k = r+1时,由于右路径上有r个节点,则右子树有。从结果上看,4的NPL是2而2的NPL是1,并不是4的比2的小,故D错误,选D。的形式的数时,其不可能都包含。原创 2024-03-26 13:34:56 · 973 阅读 · 0 评论 -
高级数据结构与算法习题(3)
解析:F。在索引技术中,每个节点均会存放部分索引,而不是所有的索引。因为分布式索引的方式是按文档序号排序的,如果按包含的terms分类,在储存故障时,关于这个terms的文档全没了,不抗风险。解析:F。这个说的是data retrieval,错。Information retrieval才需要measure the relevancy of the answer set。解析:F。False,在机场安全的危险品探测中应该是Recall率更重要。解析:T。原创 2024-03-19 21:33:19 · 1079 阅读 · 0 评论 -
高级数据结构与算法习题(2)
解析:T。2-3 的B+tree意味着非根节点有2个或者3个元素。而这个B+树有3个非叶子节点,可知为根节点下面两个非叶子节点组成,而为了使他keys最多,则这两个下面都各接3个叶子节点,每片叶子里面存储3个元素,故一共有2*3*3=18个keys。38;31;12;19;D.8 is red解析:B。插入过程如下:我们可以发现19是红色而41是黑色,故B错误。解析:C。原创 2024-03-16 17:45:07 · 1052 阅读 · 0 评论 -
高级数据结构与算法习题(1)
一、单选题解析:D。题中询问如果在规定空树高为-1的情况下,高度为6的平衡树最少有多少个节点。那么,在考虑最少我们可以想到是在第6层只有一个节点的情况下构成的树,即转化成对求满节点的h=5的AVL树的节点数。(当然也可以直接用公式:记高度为h的AVL树的最少节点数为,则我们有)我们有,那么则递推可以得到结果为33。解析:B。具体插入过程如图:依据图可以看到,3和7并不是兄弟节点,故为B。解析:D。查询过程中平衡树变化如图:从结果我们不难看出4是3的父节点,而不是3是4的父节点,故D错误。原创 2024-03-13 21:50:21 · 1582 阅读 · 2 评论