假定一种算法的时间代价为 ∑i∣nni\sum\limits_{i \mid n} \frac n ii∣n∑in,那我应该将其视为 O(nlogn)O(n\log n)O(nlogn) 还是 O(n)O(n)O(n)?
一开始我认为是 O(nlogn)O(n\log n)O(nlogn) 的原因是 ∑i=1nni=O(nlogn)\sum\limits_{i=1}^{n} \frac n i=O(n\log n)i=1∑nin=O(nlogn),但是我发现若限定 iii 为 nnn 的因数时这玩意跑不满,也看不出其时间代价和 log\loglog 相关。
求证明。