📜  数据结构和算法 | 32套

📅  最后修改于: 2021-09-27 22:42:41             🧑  作者: Mango

以下问题已在 GATE CS 2014 考试中提出。

1) 设 G 是一个有 n 个顶点和 m 个边的图。 G 的深度优先搜索的运行时间的最紧上限是多少?假设图是用邻接矩阵表示的。
(A) O(n)
(B) O(m+n)
(C) O(n 2 )
(D) O(mn)

答案: (C)
说明:当使用邻接表表示图时,图的深度优先搜索需要 O(m+n) 时间。

在邻接矩阵表示中,图被表示为“nx n”矩阵。为了做 DFS,对于每个顶点,我们遍历与该顶点对应的行以找到所有相邻的顶点(在邻接表表示中,我们只遍历顶点的相邻顶点)。因此时间复杂度变为 O(n 2 )

2) 考虑使用指针表示的有根二叉树。确定具有恰好 4 个节点的子树的数量所需时间的最佳上限 O(n a Logn b )。那么 a + 10b 的值是________

答案: 1
解释:我们可以在 O(n) 时间内找到具有 4 个节点的子树。以下可以是一个简单的方法。
1)自底向上遍历树,找到以当前节点为根的子树的大小
2)如果size变为4,则打印当前节点。

int print4Subtree(struct Node *root)
{
    if (root == NULL)
      return 0;
    int l =  print4Subtree(root->left);
    int r =   print4Subtree(root->right);
    if ((l + r + 1) == 4)
       printf("%d ", root->data);
    return (l + r + 1);
}

3) 考虑下面给出的有向图。以下哪一项是正确的?

GATECS2014Q22
(A)该图没有任何拓扑排序
(B) PQRS 和 SRPQ 都是拓扑排序
(C) PSRQ 和 SPRQ 都是拓扑排序
(D) PSRQ 是唯一的拓扑排序

答案: (C)
说明:
该图不包含任何环,因此存在拓扑排序。
P 和 S 必须出现在 R 和 Q 之前,因为从 P 到 R 和 Q,以及从 S 到 R 和 Q 都有边。
有关更多详细信息,请参阅拓扑排序。

4) 让 P 成为一个 QuickSort 程序,使用第一个元素作为主元按升序对数字进行排序。设 t1 和 t2 分别是 P 对输入 {1, 2, 3, 4, 5} 和 {4, 1, 5, 3, 2} 进行的比较次数。以下哪一项成立?
(A) t1 = 5
(B) t1 < t2
(C) t1 > t2
(D) t1 = t2

答案: (C)
Explanation: When first element or last element is chosen as pivot, Quick Sort’s worst case occurs for the sorted arrays.
在快速排序的每一步中,数字按照以下循环进行划分。
T(n) = T(n-1) + O(n)

5) 考虑以下 C函数,其中 size 是数组 E 中的元素数:
函数MyX 返回的值是

int MyX(int *E, unsigned int size)
{
    int Y = 0;
    int Z;
    int i, j, k;
  
    for (i = 0; i < size; i++)
        Y = Y + E[i];
  
    for (i = 0; i < size; i++)
        for (j = i; j < size; j++)
        {
            Z = 0;
            for (k = i; k <= j; k++)
                Z = Z + E[k];
            if (Z > Y)
                Y = Z;
        }
    return Y;
}

(A)数组 E 的任何子数组中元素的最大可能总和。
(B)数组 E 的任何子数组中的最大元素。
(C)数组 E 的所有可能子数组中最大元素的总和
(D)数组 E 中所有元素的总和。

答案:(一)
说明:该函数执行以下操作
Y 用于存储迄今为止看到的最大和,Z 用于存储当前和
1) 将 Y 初始化为所有元素的总和
2) 对于每个元素,计算以 arr[i] 开头的所有子数组的总和。将当前和存储在 Z 中。 如果 Z 大于 Y,则更新 Y。


请参阅以下所有 GATE CS 2014 论文的完整解决方案

GATE-CS-2014-(Set-1)
GATE-CS-2014-(Set-2)
GATE-CS-2014-(Set-3)