0

我想看看两个数字相加的时间复杂度是多少。这里写成加法是 n 平方。算法笔记

页码 4 第二段。

现在,如果我取 99 + 99 作为我将执行两个加法操作和两个进位操作 + 将前一个进位添加到新结果并结合所有内容。

我不确定我怎么能说这是 n 平方。

这让我认为我应该用二进制表示数字,这将使 01100011 成为 8 位,这将导致 8 个加法加上 4 个进位加法。这看起来像 n 平方,但我不确定。

有没有不同的方式来看待这个?它是怎样的?您可以在每个数字上运行一个循环并添加位置位置,即 10*sum+100*sum 等,但我可以在一个 for 循环中很好地做到这一点。

4

1 回答 1

3

你提到的那句话说:

添加也不是免费的。添加两个 n 位数字需要 O(n) 时间,因此迭代算法的运行时间为 O(n 2 )。

我将您第一次阅读文本时可能错过的相关单词加粗。

所指的“迭代算法”是用于前几页中讨论的其他内容的算法,而不是用于添加两个 n 位数的算法。

于 2012-09-29T04:53:25.527 回答