各种算法的复杂度

图论

  1. Dijkstra堆优化 (O((n+m)logm))

  2. Floyd (O(n^3))

  3. SPFA (O(?))

  4. Tarjan (O(n+m))

  5. 欧拉回路 (O(m+n))

  6. 网络流 (O(n^2m))

  7. 最小生成树 (O(nlogn))

数据结构

  1. 线段树 (O(nlogn))

  2. 树状数组 (O(logn))

  3. 并查集 (O(一个很小的数))

  4. 单调队列和单调栈 均摊(O(n))

  5. ST表 预处理(O(nlogn)),查询(O(1))

  6. 堆和优先队列 (O(logn))

字符串

  1. manacher (O(n))

  2. Trie树 (O(len))

  3. AC自动机 (O(sumlimits_{i=1}^{} s_i+26n+S)),其中(s_i)为模式串的长度,(n)为节点个数,(S)为匹配串长度

  4. KMP 前缀函数(O(n)),匹配(O(n^2))

数论

  1. 快速幂 (O(logn))

  2. exgcd和gcd (O(logn))

  3. 欧拉函数 (O(n))

  4. 线性筛 (O(n))

原文地址:https://www.cnblogs.com/little-uu/p/14025297.html