参考: K神的讲解 ![[image-2.png]] ==在做算法题的时候,怎么根据已知的数据,判断时间复杂度的限制?== ![[Pasted image 20251119195154.png]]
![[Pasted image 20251119195402.png]]**算法复杂度主要可从 时间 、空间 两个角度评价:
**时间: 假设各操作的运行时间为固定常数,统计算法运行的「计算操作的数量」 ,以代表算法运行所需时间; 空间: 统计在最差情况下,算法运行所需使用的「最大空间」;
==时间复杂度就是来评价一个代码好不好的指标== !!!简单来说就是看你的代码跑的快不快!!! ![[Pasted image 20251119194116.png]] 表示法:大O表示法(只要数量级对就可以)
- 把乘法里的系数去掉
- 对于加法,只保留最大的那一项
大O用来表示上界的,当用它作为算法的最坏情况运行时间的上界,就是对任意数据输入的运行时间的上界。 ![[Pasted image 20251119194807.png]] ==O(1)常数阶 < O(logn)对数阶 < O(n)线性阶 < O(n^2)平方阶 < O(n^3)(立方阶) < O(2^n) (指数阶)== 如果数据规模很小 甚至可以用O(n^2)的算法比 O(n)的更合适