Advertisement

对时间和空间复杂度进行分析(如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)

还没有任何评论哟~