对时间和空间复杂度进行分析(如Python版本)
发布时间
阅读量:
阅读量
算法所具有的**“时间复杂度”与“空间复杂度”**两项指标,共同构成了对算法复杂度的完整描述。
时间复杂度分析
关于时间复杂度的定义,可参考我所列举的几篇博客内容。
计算机科学家采用一种特定的表示方式,用于描述算法在执行过程中的效率或计算复杂度,这种表示方式被称为大O表示法(big-O notation)。“O”在此处代表“on the order of(在……阶)”,它用于表达算法运行时所需工作量的复杂程度所处的级别。例如,线性时间算法的时间复杂度阶数为O(n)。大O表示法对有关复杂度阶数的讨论进行了形式化处理。
按照数量级由低到高的顺序排列,常见的时间复杂度包括:常数阶O(1)、对数阶O(log_2n)、线性阶O(n)、线性对数阶O(nlog_2n)、平方阶O(n^2)、立方阶O(n^3)、…、k次方阶O(n^k)以及指数阶O(2^n)。随着问题规模n逐渐增大,算法的运行效率会相应下降。
以下表格中列举了若干不同复杂度阶的具体示例:
| n | 对数阶(log_2n) | 线性阶(n) | 平方阶(n^2) | 指数阶(2^n) |
|---|---|---|---|---|
| 100 | 7 | 100 | 10 000 | 超标 |
| 1000 | 10 | 1000 | 1 000 000 | 超标 |
| 1 000 000 | 20 | 1000 000 | 1 |
全部评论 (0)
还没有任何评论哟~
