常见时间复杂度

一、基础算法

快速排序 O ( n log ⁡ n ) O(n\log n) O(nlogn)

归并排序 O ( n log ⁡ n ) O(n\log n) O(nlogn)

桶排序 O ( n ) O(n) O(n)

二分 O ( log ⁡ n ) O(\log n) O(logn)(一般情况下)

倍增 O ( log ⁡ n ) O(\log n) O(logn)

DFS \text{DFS} DFS算法 一般为指数级

二、字符串算法

KMP \text{KMP} KMP O ( m + n ) O(m+n) O(m+n)

Trie \text{Trie} Trie 插 入 O ( l e n s ) , 查 询 O ( l e n s ) 插入O(len_s),查询O(len_s) O(lens),O(lens)

AC \text{AC} AC自动机 建 立 O ( ∑ l e n 模式串 ) , 匹 配 O ( l e n 文本串 ) 建立O(\sum len_\text{模式串}),匹配O(len_\text{文本串}) O(len模式串),O(len文本串)

三、图论算法

并查集 O ( α ( n ) ) O(\alpha(n)) O(α(n))(路径压缩+按秩合并)

图的 DFS \text{DFS} DFS遍历和 BFS \text{BFS} BFS遍历 O ( n + m ) O(n+m) O(n+m)(链式前向星)

朴素 Prim \text{Prim} Prim O ( n 2 ) O(n^2) O(n2)

优先队列优化 Prim \text{Prim} Prim O ( ( n + m ) log ⁡ m ) O((n+m)\log m) O((n+m)logm)

Kruskal \text{Kruskal} Kruskal O ( m log ⁡ m ) O(m\log m) O(mlogm)

Floyd \text{Floyd} Floyd O ( n 3 ) O(n^3) O(n3)

朴素 Dijkstra \text{Dijkstra} Dijkstra O ( n 2 ) O(n^2) O(n2)

优先队列优化 Dijkstra \text{Dijkstra} Dijkstra O ( ( n + m ) log ⁡ m ) O((n+m)\log m) O((n+m)logm)

Bellman-Ford \text{Bellman-Ford} Bellman-Ford O ( n m ) O(nm) O(nm)

SPFA \text{SPFA} SPFA 随 机 数 据 O ( k m ) , 构 造 数 据 O ( n m ) 随机数据O(km),构造数据O(nm) O(km),O(nm)

Johnson \text{Johnson} Johnson全源最短路径 O ( n m log ⁡ m ) O(nm\log m) O(nmlogm)

Tarjan \text{Tarjan} Tarjan强连通分量 O ( n + m ) O(n+m) O(n+m)

Tarjan \text{Tarjan} Tarjan割点割桥 O ( n + m ) O(n+m) O(n+m)

倍增 LCA \text{LCA} LCA 预 处 理 O ( n log ⁡ n ) , 查 询 O ( log ⁡ n ) 预处理O(n\log n),查询O(\log n) O(nlogn),O(logn)

四、数据结构

二叉堆 插 入 O ( log ⁡ n ) , 删 除 O ( log ⁡ n ) 插入O(\log n),删除O(\log n) O(logn),O(logn)

树状数组 插 入 O ( log ⁡ n ) , 查 询 O ( log ⁡ n ) 插入O(\log n),查询O(\log n) O(logn),O(logn)

线段树 插 入 O ( log ⁡ n ) , 查 询 O ( log ⁡ n ) 插入O(\log n),查询O(\log n) O(logn),O(logn)

ST \text{ST} ST 预 处 理 O ( n log ⁡ n ) , 查 询 O ( 1 ) 预处理O(n\log n),查询O(1) O(nlogn),O(1)

朴素 BST \text{BST} BST 随 机 数 据 O ( log ⁡ n ) , 构 造 数 据 O ( n ) 随机数据O(\log n),构造数据O(n) O(logn),O(n)

平衡树 几 乎 所 有 操 作 O ( log ⁡ n ) 几乎所有操作O(\log n) O(logn)

五、动态规划

区间 DP \text{DP} DP O ( n 3 ) O(n^3) O(n3)(一般情况下)

树形 DP \text{DP} DP O ( n ) O(n) O(n)(一般情况下)

状压 DP \text{DP} DP O ( 2 n ) O(2^n) O(2n)(一般情况下)

六、数学

快速幂 O ( log ⁡ n ) O(\log n) O(logn)

埃氏筛 O ( n log ⁡ log ⁡ n ) O(n\log\log n) O(nloglogn)

线性筛 O ( n ) O(n) O(n)

gcd \text{gcd} gcd O ( log ⁡ n ) O(\log n) O(logn)

exgcd \text{exgcd} exgcd O ( log ⁡ n ) O(\log n) O(logn)

线性乘法逆元 O ( n ) O(n) O(n)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值