本文主要是介绍由数据范围反推算法时间复杂度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
AcWing算法基础课 算法时间复杂度分析笔记
系列文章目录
常用算法代码模板 (1) :基础算法
常用算法代码模板 (2) :数据结构
常用算法代码模板 (3) :搜索与图论
常用算法代码模板 (4) :数学知识
算法基础课 动态规划模板题笔记
算法基础课 贪心算法模板题笔记
一般ACM或者笔试题的时间限制是1秒或2秒。在这种情况下,C++代码中的操作次数控制在 1 0 7 10^7 107~ 1 0 8 10^8 108 为最佳。
数据范围 | 时间复杂度 | 算法 |
---|---|---|
n ≤ 30 n≤30 n≤30 | 指数级别 | dfs+剪枝、状态压缩dp |
n ≤ 100 n≤100 n≤100 | O ( n 3 ) O(n^3) O(n3) | floyd、dp、高斯消元 |
n ≤ 1000 n≤1000 n≤1000 | O ( n 2 ) , O ( n 2 log n ) O(n^2),O(n^2\log n) O(n2),O(n2logn) | dp、二分、朴素dijkstra、朴素prim、Bellman-Ford |
n ≤ 10000 n≤10000 n≤10000 | O ( n n ) O(n\sqrt n) O(nn) | 块状链表、分块 |
n ≤ 100000 n≤100000 n≤100000 | O ( n log n ) O(n\log n) O(nlogn) | sort、线段树、树状数组、set/map、heap、dijkstra+heap、spfa |
n ≤ 1000000 n≤1000000 n≤1000000 | O ( n ) O(n) O(n) 常数比较小的 O ( n log n ) O(n\log n) O(nlogn) | 单调队列、hash、双指针、bfs、并查集、kmp、AC自动机 sort、树状数组、heap、dijkstra+heap、spfa |
n ≤ 1 0 7 n≤10^7 n≤107 | O ( n ) O(n) O(n) | 双指针、kmp、AC自动机、线性筛素数 |
n ≤ 1 0 9 n≤10^9 n≤109 | O ( n ) O(\sqrt n) O(n) | 判断质数 |
n ≤ 1 0 18 n≤10^{18} n≤1018 | O ( log n ) O(\log n) O(logn) | 欧几里得算法、快速幂、数位dp |
这篇关于由数据范围反推算法时间复杂度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!