算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级
我们来看一看 下图👇
x轴代表数据量,也就是n
y轴代表执行次数
O(n!) : n=10就超时了,所以很少看到这样时间复杂度的程序
O(2^n):n=25也超时了,没有剪枝的DFS就是O(2^n)的
O(n^3) : n = 450超时,Floyd的时间复杂度
O(n^2):n=10000超时,动态规划LIS和一些暴力枚举,还有dijkstra
O(nlogn):n=1000000才超时,快速排序,归并排序,二分判定都是这个时间复杂度,算比较优秀的时间复杂度
O(n):n=100000000超时,线性动态规划和一些简单暴力就是,非常优秀的时间复杂度!
O(√n):n=1e16超时,判断单个数是不是素数就是O(√n)
O(logn):这个肯定不会超时......
(数据会有误差,敬请原谅)
创作不易,留个赞再走吧