考虑一个用于将两个 n 位数字相乘的数组乘法器。如果电路中的每个门都有一个单位延迟,则乘法器的总延迟为
(A) Θ(1)
(B) Θ(log n)
(C) Θ(n)
(D) Θ(n 2 )答案: (C)
说明: ‘n’ 位数组乘法器中使用的门数 (n * n) = (2n – 1)
电路中的每个门都有一个单位延迟。
总延迟,
= 1 * (2n – 1)
= O(2n – 1)
= O(n)
假设有 2 个数字 A 和 B。
拿,
A = A0 A1 A2 A3
B = B0 B1 B2 B3
为了将 A 和 B 相乘,我们需要这样做,
- 将 A0 A1 A2 A3 与 B1 相乘需要 1 个与门
- 将 A0 A1 A2 A3 与 B2 相乘需要 1 个与门
- 将 A0 A1 A2 A3 与 B3 相乘需要 1 个与门
- 将 A0 A1 A2 A3 与 B4 相乘需要 1 个与门
还需要 3 个 OR 门来添加 AND 门获得的项。
因此,所需的总门数 = 4+3 = 7,即 2N-1。
所以,
Time complexity = ϴ(n)
选项(C)是正确的。
这个问题的测验