这里写目录标题
- 由数据范围反推算法时间复杂度以及算法内容
- 分析时间复杂度
- 看循环
- 实例1
- 实例2
- 固定时间复杂度
- 快排和归并排序
- 二分
- 高精度算法
- 双指针算法
- 单链表插入删除操作
- 栈和队列的操作
- 单调栈和单调队列
- KMP
- Tire
- 并查集
- 堆
- 哈希表
- BFS、DFS
- 图的深度优先、宽度优先遍历
- dijkstra算法
- 朴素版
- 堆优化版
- spfa
- floyd
- prim
- kruskal
- 染色法判断二分图
- 匈牙利算法
- 试除法、分解质因数
- 埃氏筛法
- 优化后的筛质数
- 辗转相除
- 快速幂
- tips
由数据范围反推算法时间复杂度以及算法内容
分析时间复杂度
看循环
实例1
只有两个单重循环,或者说一维循环,所以时间复杂度是o(n)
实例2
看最深的循环:o(n*m)可以估算为o(n方)
固定时间复杂度
快排和归并排序
o(nlogn)
二分
o(logn)
高精度算法
o(n)
双指针算法
o(n)
单链表插入删除操作
o(1)
栈和队列的操作
o(1)
单调栈和单调队列
o(n)
KMP
o(n)
Tire
o(n)
并查集
o(nlogn)
堆
o(logn)
哈希表
o(1)
BFS、DFS
o(n*n!)
图的深度优先、宽度优先遍历
o(n+m)
dijkstra算法
朴素版
o(n方)
堆优化版
o(mlogm)
spfa
o(mn)
floyd
o(n三方)
prim
o(n方)
kruskal
o(mlogm)
染色法判断二分图
o(n+m)
匈牙利算法
o(n三方)
试除法、分解质因数
o(根号x)
埃氏筛法
o(nlogn)
优化后的筛质数
辗转相除
o(logn)
快速幂
o(logk)