【发布时间】:2016-10-19 22:48:12
【问题描述】:
我不知道如何获得确切的渐近复杂度,因为以下问题要求我解决。
这是一个问题:
我从课堂上学到的一切是,如果存在运行 N 次的“for 循环”,或者递归调用 N 次“递归方法”,那么任何一个都是 O(N)。这几乎是我所知道的所有基础知识。
问题 1)关于“N(N+1)/2”的答案是什么,这与“O(N(N+1)/2)”相同吗?
另外,答案是“在迭代 i 时,add 和 trimToSize 都要求将 i 数组元素复制到新数组中。”,我认为它是这样说的,因为它同时调用了“list.add()”和“ list.trimToSize()" N 次。
从我的角度来看,这看起来更像是 O(N)... 因为它使用“list.add()”将第 i 个元素添加 N 次,并且通过“list.trimToSize()”将元素数组复制 N 次”。因此,N + N
问题 2)我只是不知道如何获得答案所说的 N(N+1)/2。
如能回答,万分感谢!
【问题讨论】:
标签: java algorithm performance asymptotic-complexity cumulative-sum