时间复杂度和空间复杂度

Posted CodeAllen嵌入式编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了时间复杂度和空间复杂度相关的知识,希望对你有一定的参考价值。

大家如果考过计算机研究生或者学习过数据结构的课程会发现,在学习的一开始都是介绍时间复杂度和空间复杂度。这是每一位初学者都要掌握一个技能。

所谓算法,即解决问题的方法。同一个问题,使用不同的算法,虽然得到的结果相同,但耗费的时间和资源肯定有所差异。这个差异一般情况下我们会使用时间复杂度和空间复杂度来表示。

也就意味着,如果解决问题的算法有多种,我们就需要从中选出最好的那一个。


“好”算法的标准

解决一个问题的方法可能有很多,但能称得上算法的,首先它必须能彻底解决这个问题(称为准确性),且根据其编写出的程序在任何情况下都不能崩溃(称为健壮性)。

注意,程序和算法是完全不同的概念。算法是解决某个问题的想法、思路;而程序是在根据算法编写出来的真正可以运行的代码。例如,要依次输出一维数组中的数据元素的值,首先想到的是使用循环结构,在这个算法的基础上,我们才开始编写程序。

在满足准确性和健壮性的基础上,还有一个重要的筛选条件,即通过算法所编写出的程序的运行效率。程序的运行效率具体可以从 2 个方面衡量,分别为:

  • 程序的运行时间。
  • 程序运行所需内存空间的大小。

根据算法编写出的程序,运行时间更短,运行期间占用的内存更少,该算法的运行效率就更高,算法也就更好。

那么,如何衡量一个算法所编写出程序的运行效率呢&

以上是关于时间复杂度和空间复杂度的主要内容,如果未能解决你的问题,请参考以下文章

算法的时间复杂度和空间复杂度

时间复杂度和空间复杂度分析(转载)

算法的时间复杂度和空间复杂度-总结

算法的时间复杂度和空间复杂度

前端 算法的时间复杂度和空间复杂度

算法的时间复杂度和空间复杂度