双重循环
例如,用大O记法表示时间复杂度相关知识(1)里3段程序的运行时间,则第一段程序的时间复杂度为O(1),第二段程序的时间复杂度为O(n),第三段程序的时间复杂度为O(n²)
如下列举了常用的几种时间复杂度,以及它们之间的大小关系:
O(1) < O(logn) < O(n) < O(n²) < O(n³) < O()
常数阶 < 对数阶 < 线性阶 < 平方阶 < 立方阶 < 指数阶
在做题的时候,需要仔细阅读题目给出的数据范围,避免时间超限,对比不同复杂度的增长,大概最大可以接受数据如下表显示。以下只是数量级的建议,具体情况具体分析。
|----------------------------------------|-------------------------------------------------------------------------------|
| 算法复杂度 | 建议不超过的n的范围 |
| O(logn) | long long范围内 |
| O(n) | |
| O(nlogn) | ~5* |
| O(n²) | 1000~5000 |
| O(n³) | 200~500 |
| O() | 20~24 |
| O(n!) | 12 |