算法效率的度量

qmtt Lv2

介绍

想要知道自己写的代码的效率这么样,我们首先想到的就是把代码跑一遍,代码跑起来就知道自己写的代码运行的是快还是慢了。

但是这样会存在一些问题:

  1. 每台电脑性能是不一样的。如超级计算机和单片机

  2. 不同的编程语言运行速度也不一样,编译型语言会比解释型语言要快一些

  3. 和编译程序产生的机器指令的质量有关

  4. 有些算法比如(导弹控制算法),是不能事后统计的

因此我们需要别的方法来统计算法效率,能够排除外界因素对算法本身的干扰。要知道:算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。于是就有了时间复杂度空间复杂度的概念。时间复杂度主要衡量一个算法的运行快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间。

时间复杂度

时间复杂度:在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。

比如一个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void Func1(int N) 
{
int count = 0;
for (int i = 0; i < N ; ++ i)
{
for (int j = 0; j < N ; ++ j)
{
++count;
}
}
for (int k = 0; k < 2 * N ; ++ k)
{
++count;
}
int M = 10;
while (M--)
{
++count;
}
}
  • 标题: 算法效率的度量
  • 作者: qmtt
  • 创建于 : 2025-03-20 11:03:26
  • 更新于 : 2025-04-21 11:08:18
  • 链接: https://qmtt.wang/2025/03/20/算法的时间复杂度和空间复杂度/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
算法效率的度量