暂时先整理这么多,
时间比较仓促,肯定有错的地方,如果您有疑问欢迎提出
以后随学随整理吧
数据结构
线段树:
时间复杂度
查询、修改:$O(logn)$
建树:$O(n*logn)$
空间复杂度
$O(4*n)$ ,用dfs序可优化至$O(2*n)$
树状数组
时间复杂度
查询、修改:$O(logn)$
空间复杂度
$O(n)$
单调队列、单调栈
时间复杂度
$O(n)$
空间复杂度
$O(n)$
堆
时间复杂度
建堆$O(n)$
查询$O(1)$
插入$O(logn)$
删除$O(1)$
空间复杂度
$O(n)$
倍增
时间复杂度
预处理:$O(n*logn)$
查询:$O(1)$
空间复杂度
$O(n*logn)$
并查集
时间复杂度
预处理:$O(n)$
查询:$O(alpha (n)^{-1})$(n的反阿克曼函数)
合并:$O(1)$
空间复杂度
$O(n)$
链表
时间复杂度
修改:$O(1)$
查询:$O(n)$
空间复杂度
$O(n)$
数组
时间复杂度
修改:$O(n)$
查询:$O(1)$
空间复杂度
$O(n)$
最短路
Floyd
时间复杂度
$O(n^3)$ 多源最短路
空间复杂度
$O(n^2)$
SPFA
时间复杂度
$O(k*e)$ k:平均入队次数,大约为2,当然也有例外情况,单源最短路,支持负权边
空间复杂度
$O(e)$
Dijkstra
时间复杂度
$O(n^2)$
堆优化:$O(n*logn)$
空间复杂度
$O(e)$
最小生成树
prime
时间复杂度
$O(n^2)$
堆优化:$O(n*logn)$
空间复杂度
$O(e)$
kruskal
时间复杂度
$O(e*loge)$
空间复杂度
$O(e)$
字符串
kmp
时间复杂度
$O(m+n)$设n,m为两个串的长度
空间复杂度
$O(m+n)$
AC自动机
时间复杂度
$O(A+S)$设A是文章长度,S是单词串总长
空间复杂度
$O(A*26)$ //这个我也不太确定,,
manacher
时间复杂度
$O(S)$设S字符串长度
空间复杂度
$O(S)$
扩展KMP
时间复杂度
$O(S)$设S字符串长度
空间复杂度
$O(S)$
后缀数组
时间复杂度
$O(S*logS)$设S字符串长度
空间复杂度
$O(S)$
数论
快速幂
时间复杂度
$O(log(n))$设n为指数
空间复杂度
$O(1)$
扩展欧几里得
时间复杂度
$O(log(b))$设a>=b>=1
空间复杂度
$O(1)$
中国剩余定理
时间复杂度
$O(n*log(m))$设n为式子的个数,m是模数
空间复杂度
$O(n)$
素数筛法
时间复杂度
http://www.cnblogs.com/zwfymqz/p/7794782.html
埃拉托斯特尼筛法非优化版$O(n*logn)$
埃拉托斯特尼筛法优化版$O(n*log^{logn})$
欧拉筛$O(n)$
空间复杂度
$O(n)$
矩阵乘法
时间复杂度
$O(log(n))$设n为指数
空间复杂度
$O(r*c)$ r,c为矩阵的长和宽