在计算机科学中,我们需要比较不同算法的效率。 衡量算法效率通常从 时间复杂度空间复杂度 两个方面进行。

一、时间复杂度

时间复杂度表示:

算法执行时间随问题规模 n 增长的变化趋势。

常见的时间复杂度:

复杂度 示例
O(1) 常数时间
O(log n) 二分查找
O(n) 顺序查找
O(n log n) 快速排序
O(n²) 双重循环

示例代码:

for (i = 1; i <= n; i++)
    for (j = 1; j <= n; j++)
        count++;

执行次数:

n × n = n²

因此时间复杂度为:

O(n²)

二、空间复杂度

空间复杂度表示:

算法运行过程中额外占用的存储空间。

例如:

  • 使用常数个变量:O(1)
  • 使用长度为 n 的数组:O(n)

三、总结

算法效率主要从两个方面衡量:

  1. 时间复杂度
  2. 空间复杂度

在实际分析算法时,我们更关注 时间复杂度的增长趋势