You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#代码片段的Big O时间复杂度计算求助

C#代码片段的Big O时间复杂度分析

关键前提

LinkedList<T>.ElementAt(int index) 的时间复杂度为 O(index):因为LinkedList是双向链表,没有随机访问能力,调用ElementAt时需要从链表头部(或尾部,取决于索引位置)逐个遍历到目标索引节点,最坏情况下需要遍历index个节点。


逐行时间复杂度梳理

初始化阶段

int n = Int32.Parse(Console.ReadLine());                 // O(1):固定输入解析操作
LinkedList<int> sumSequence = new LinkedList <int>();    // O(1):链表实例化开销固定
sumSequence.AddLast(0);                                  // O(1):LinkedList.AddLast为常数时间操作
sumSequence.AddLast(1);                                  // O(1):同上

第一个外层循环(核心计算逻辑)

for (int i = 2; i < n; i++)                              // 执行次数:n-2 次,时间复杂度O(n)(仅循环本身)
{
  int currentSum = 0;                                    // O(1):每次迭代的常数赋值操作

  // 内层循环:j从i-1递减到1,执行次数为 (i-1) 次
  for (int j = i - 1; j > 0; j--)                        // 每次外层循环i对应执行i-1次
  {
    // ElementAt(j)需要遍历j个节点,时间复杂度O(j)
    currentSum += sumSequence.ElementAt(j);              // 每次内层操作:O(j)
  }
  sumSequence.AddLast(currentSum);                       // O(1):LinkedList.AddLast常数时间
}

内层循环总时间计算

外层循环i从2到n-1,每个i对应的内层循环总时间为:

  • 当i=2时:j=1 → 总时间O(1)
  • 当i=3时:j=2、1 → 总时间O(2)+O(1)
  • ...
  • 当i=n-1时:j=n-2、n-3...1 → 总时间O(n-2)+O(n-3)+...+O(1)

将所有内层循环时间求和,等价于计算:
$$\sum_{k=1}^{n-2} \sum_{m=1}^{k} m$$
其中k = i-1(i从2到n-1对应k从1到n-2)。

通过求和公式推导:
$$\sum_{m=1}^{k} m = \frac{k(k+1)}{2}$$
$$\sum_{k=1}^{n-2} \frac{k(k+1)}{2} = \frac{1}{2} \left( \sum_{k=1}^{n-2} k^2 + \sum_{k=1}^{n-2} k \right)$$
代入平方和与等差数列求和公式后,最高次项为$n^3$,因此这部分总时间复杂度为 O(n³)。

第二个循环(输出逻辑)

for (int i = 0; i < sumSequence.Count(); i++)            // sumSequence.Count()为O(1),循环执行n次(最终链表有n个元素)
{
  Console.WriteLine(sumSequence.ElementAt(i));           // 每次ElementAt(i)为O(i),总时间为$\sum_{i=0}^{n-1} O(i) = O(n²)$
}

总复杂度推导

Step 1:合并所有项并移除常数

所有部分的时间复杂度相加:$O(1) + O(n³) + O(n²)$,移除常数项后得到 $O(n³) + O(n²)$

Step 2:移除低阶项和系数

由于$n³$的增长速度远快于$n²$,低阶项$O(n²)$可以忽略,得到 $O(n³)$

Step 3:选取最显著项

最终总时间复杂度为 O(n³)

内容的提问来源于stack exchange,提问作者Luke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 16:20:09