不知道这是否是正确的地方问这个问题。 在Cormen的第1056页我读到,如果一个算法的运行时间是O(k)并且“k”以一元表示,即一串k 1s,那么该算法的运行时间是0(n),其中“n”是输入大小为比特,如果“k”表示为二进制,则n = lg k + 1,算法的运行时间变为o(2^n)。 所以,我的疑问是,为什么在这种情况下“一元”表示不会被优先选择,因为它在多种情况下给出多项式时间,而在其他情况
我正在阅读CLRS算法简介。书示出了用于简单分伪代码而治之矩阵乘法: n = A.rows
let c be a new n x n matrix
if n == 1
c11 = a11 * b11
else partition A, B, and C
C11 = SquareMatrixMultiplyRecursive(A11, B11)
+ Square