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

请协助确认该算法的Big O时间复杂度,我判断为O(n²)需验证

算法时间复杂度验证:O(n²)判断是否正确?

我想确认以下算法的Big O表示法类型,自己初步判断其时间复杂度为O(n²),希望得到专业验证确认。

相关代码

function uniqueQuadratic(words) {
  const unique = [];                //  *  = O(?)
  for (
    let i = 0;                      //  *  = O(?)
    i < words.length;               //  *  = O(?)
    i++                             //  *  = O(?)
  ) {
    const word = words[i];          //  *  = O(?)
    let isUnique = true;            //  *  = O(?)
    for (
      let c = 0;                    //  *  = O(?)
      c < i;                        //  *  = O(?)
      c++                           //  *  = O(?)
    ) {
      const comparing = words[c];   //  *  = O(?)
      if (comparing === word) {     //  *  = O(?)
        isUnique = false;           //  *  = O(?)
      }
    }
    if (isUnique) {                 //  *  = O(?)
      unique[unique.length] = word; //  *  = O(?)
    }
  }
  return unique;
}

逐行时间复杂度分析

  • const unique = [];:O(1),仅初始化空数组,属于常数时间操作。
  • 外层for循环:
    • let i = 0;:O(1),仅执行一次初始化。
    • i < words.length;:O(n),外层循环共执行n次(n为words数组长度),每次循环都要执行该判断。
    • i++:O(n),外层循环每轮执行一次,共n次。
  • 外层循环内:
    • const word = words[i];:O(n),每轮外层循环执行一次,共n次。
    • let isUnique = true;:O(n),每轮外层循环执行一次,共n次。
  • 内层for循环:
    • let c = 0;:O(n),每轮外层循环执行一次初始化,共n次。
    • c < i;:O(n²),内层循环的执行次数随外层循环的i递增:当i=1时执行1次,i=2时执行2次……i=n-1时执行n-1次,总次数为1+2+...+(n-1) = n(n-1)/2,属于O(n²)量级。
    • c++:O(n²),执行次数与上述判断一致,总次数为n(n-1)/2,属于O(n²)量级。
    • const comparing = words[c];:O(n²),执行次数与内层循环总次数一致,属于O(n²)量级。
    • if (comparing === word) 及内部的isUnique = false;:O(n²),比较操作按常数时间O(1)计算(若考虑字符串长度则为O(k),但通常忽略此细节),总执行次数为n(n-1)/2,属于O(n²)量级。
  • 外层循环末尾:
    • if (isUnique):O(n),每轮外层循环执行一次判断,共n次。
    • unique[unique.length] = word;:平均O(n),数组末尾赋值操作平均为O(1),最多执行n次(当所有元素都唯一时)。

整体复杂度结论

内层循环的核心操作总次数为O(n²),其余操作均为O(n)或O(1),在Big O表示法中我们只保留最高量级的项,因此该算法的时间复杂度确实为O(n²),你的初步判断正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 05:21:55