以下问题已在 GATE CS 2006 考试中提出。
1. 在包含 n 个数字的二进制最大堆中,可以及时找到最小元素(GATE CS 2006)
(A) 0(n)
(B) O(logn)
(C) 0(loglogn)
(四) 0(1)
答案 (A)
在最大堆中,最小元素总是出现在叶节点上。所以我们需要检查所有叶子节点的最小值。最坏情况复杂度为 O(n)
12
/ \
/ \
8 7
/ \ / \
/ \ / \
2 3 4 5
2.在数组X中存储二叉树的方案如下。 X 的索引从 1 而不是 0 开始。根存储在 X[1]。对于存储在 X[i] 的节点,左孩子(如果有)存储在 X[2i] 中,右孩子(如果有)存储在 X[2i+1] 中。为了能够在 n 个顶点上存储任何二叉树,X 的最小大小应该是。 (GATE CS 2006)
(一) log2n
(B) n
(C) 2n + 1
(D) 2^n — 1
答案 (D)
对于右偏二叉树,节点数为 2^n – 1。例如,在下面的二叉树中,节点 ‘A’ 将存储在索引 1,’B’ 存储在索引 3,’C’ 存储在索引 7以及索引 15 处的“D”。
A
\
\
B
\
\
C
\
\
D
3. 以下哪一种就地排序算法需要最少的交换次数? (GATE CS 2006)
(A) 快速排序
(B) 插入排序
(C) 选择排序
(D) 堆排序
答案 (C)
对于选择排序,所需的交换次数最少( Θ(n) )。
4. 如果数组 X 中的元素大于 X 中它右侧的所有元素,则称为领导者。 查找数组中所有领导者的最佳算法(GATE CS 2006)
(A) 使用从左到右的数组遍历在线性时间内求解
(B) 使用数组的从右到左遍历在线性时间内求解
(C) 用分而治之的方法解决它 8(nlogn)
(D) 及时解决 8(n2)
答案 (B)
请参阅此帖子以获取解释。
5. 考虑顶点集 {v1, v2, ..vn} 上的加权完全图 G,使得边 (vi, vj) 的权重为 2|ij|。 G 的最小生成树的权重为:(GATE CS 2006)
(A) n — 1
(B) 2n — 2
(C) nC2
(四) 2
答案 (B)
这种图的最小生成树是
v1
\
v2
\
v3
\
v4
.
.
.
vn
最小生成树的权重
= 2|2 – 1| + 2|3 – 2| + 2|4 – 3| + 2|5 – 4| …… + 2| n – (n-1) |
= 2n – 2
请参阅 GATE Corner 了解所有往年论文/解决方案/解释、教学大纲、重要日期、笔记等。