Мне трудно понять следующие утверждения из Алгоритмы С. Дасгупты, C.H. Papadimitriou, и U.V. Vazirani - стр. 24), что они представляют сумму O (n) как O (n 2). Но мое понимание O (n) является линейной функцией от n, и оно никогда не может быть квадратичным независимо от того, сколько раз линейные функции добавлены (для любого заданного n). Они приводят объяснение, как показано ниже, для примера 13 x 11 в двоичной нотации.
1 1 0 1
x 1 0 1 1
----------
1 1 0 1 (1101 times 1)
1 1 0 1 (1101 times 1, shifted once)
0 0 0 0 (1101 times 0, shifted twice)
+ 1 1 0 1 (1101 times 1, shifted thrice)
----------------
1 0 0 0 1 1 1 1 (binary 143)
Если x и y (1101 и 1011 здесь) являются как n битами, тогда представляют собой n промежуточных строк с длинами до 2n бит (принимая сдвиг в учетную запись). Общее время, затрачиваемое на добавьте эти строки, сделав два числа в момент времени O (n) + O (n) +... + O (n), которая является O (n 2), квадратичной в размер входов.
Извините, если это очевидно, но может кто-нибудь помочь мне понять, почему это O (n 2)?