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

时间复杂度为O(n² log n)的算法有哪些?实现思路是什么?

O(n² log n)复杂度算法相关问题解答

你的猜想是否正确

你的猜想基本正确,这是绝大多数O(n² log n)算法的典型构成逻辑:

  • 两层嵌套的循环各执行n次,累计时间复杂度为O(n²)
  • 内层循环内部执行的操作(比如平衡树查询更新、堆操作、二分查找等)时间复杂度为O(log n)
    两者相乘后总时间复杂度就是O(n² log n)。
    当然存在少量非典型的构成场景,比如先执行一次O(n²)的预处理,后续执行总复杂度O(n log n)的查询操作,总复杂度也属于该量级,但这类场景占比很低。

常见O(n² log n)算法实例

  • 部分增量构造实现的三维凸包算法:每插入一个新的三维点,需要遍历所有现有面判断冲突关系,同时涉及面的排序、查找操作,时间复杂度上界为O(n² log n)
  • 带拓展需求的最长上升子序列相关算法:比如统计所有可重最长上升子序列的不同种类数,两层循环遍历元素对,内层用树状数组/线段树做前缀和的查询与更新,单次操作复杂度O(log n),总复杂度为O(n² log n)
  • 稠密图的特殊路径计算:比如统计所有节点对之间的次短路径长度,部分实现中两层循环遍历节点,内层用堆优化的路径搜索做相关统计,总复杂度为O(n² log n)
  • 子数组属性统计类算法:需要枚举所有可能的子数组(外层枚举左端点O(n),内层枚举右端点O(n)),每加入一个元素时用平衡树/堆维护当前子数组的中位数、第k大值等属性,单次插入查询复杂度O(log n),总复杂度为O(n² log n)
  • 字符串匹配类拓展算法:枚举所有待匹配的子串,内层用二分查找在预处理的字典树/后缀数组中做匹配查询,总复杂度为O(n² log n)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:30:01