在2007门CS考试中提出了以下问题。
1、考虑大小为七的哈希表,起始索引为0,哈希函数(3x+4)为MOD7。假设哈希表最初是空的,那么当序列1、3、8、10使用闭合哈希插入到表中时,以下哪项是表的内容?请注意,“u”表示表中的一个空位置。 (A) 8,,,,,,,,10 (B) 1,8,10,3, (C) 1,,,,,,,,3 (D) 1,10,8,3, 答复(B) 请看 http://lcm.csa.iisc.ernet.in/dsa/node38.html 用于闭式散列和探测。 让我们将值1、3、8、10放入大小为7的散列中。 最初,哈希表是空的
- - - - - - - 0 1 2 3 4 5 6
函数(3x+4)mod 7对于1的值是0,所以让我们把值设为0
1 - - - - - - 0 1 2 3 4 5 6
3的函数(3x+4)mod 7的值是6,所以让我们把值设为6
1 - - - - - 3 0 1 2 3 4 5 6
8的函数(3x+4)mod 7的值为0,但0已经被占用,让我们将值(8)放在下一个可用空间(1)中
1 8 - - - - 3 0 1 2 3 4 5 6
10的函数(3x+4)mod 7的值是6,但6已经被占用,让我们把值(10)放在下一个可用空间(2)中
1 8 10 - - - 3 0 1 2 3 4 5 6
2.在无权无向连通图中,根据时间复杂度,从节点S到每个其他节点的最短路径的计算效率最高 (A) Dijkstra的算法从s开始。 (B) 沃沙尔算法 (C) 从S开始执行DFS。 (D) 从S开始执行BFS。 答复(D)
* Time Complexity of the Dijkstra’s algorithm is O(|V|^2 + E) * Time Complexity of the Warshall’s algorithm is O(|V|^3) * DFS cannot be used for finding shortest paths * BFS can be used for unweighted graphs. Time Complexity for BFS is O(|E| + |V|)
3.完整的n元树是每个节点有n个子节点或没有子节点的树。设I为完整n元树的内部节点数,L为叶数。如果L=41,I=10,n的值是多少? (A) 三, (B) 四, (C) 五, (D) 六, 答复(C) 对于每个节点都有n个子节点或没有子节点的n元树,以下关系成立
L = (n-1)*I + 1
其中L是叶节点数,I是内部节点数。 让我们找出给定数据的n值。
L = 41 , I = 10 41 = 10*(n-1) + 1 (n-1) = 4 n = 5
4.在下面的C函数中,设n>=m。
C
int gcd(n,m) { if (n%m ==0) return m; n = n%m; return gcd(m,n); } |
这个函数进行了多少次递归调用? (A) Θ(logn)? (B) Ω(n) (C) Θ(logn) (D) Θ(sqrt(n)) 答复(A) 以上代码是 欧几里德算法 用于寻找最大公约数(GCD)。 请看 http://mathworld.wolfram.com/EuclideanAlgorithm.html 时间复杂性。 5.以下递归函数的时间复杂度是多少:
C
int DoSomething ( int n) { if (n <= 2) return 1; else return (DoSomething ( floor ( sqrt (n))) + n); } |
(A) Θ(n) (B) Θ(nlogn) (C) Θ(logn) (D) Θ(logn) 答复(D) DoSomething()的递归关系为
T(n) = T(√n) + C1 if n > 2
我们忽略了地板的部分,因为它是地板还是天花板都无关紧要。
Let n = 2^m, T(n) = T(2^m) Let T(2^m) = S(m) From the above two, T(n) = S(m) S(m) = S(m/2) + C1 /* This is simply binary search recursion*/ S(m) = O(logm) = O(loglogn) /* Since n = 2^m */ Now, let us go back to the original recursive function T(n) T(n) = S(m) = O(LogLogn)
请看 门角 所有上一年的论文/解决方案/解释、教学大纲、重要日期、笔记等。 如果您发现任何答案/解释不正确,或者您想分享有关上述主题的更多信息,请发表评论。