如何去理解算法时间复杂度?

简介: 如何去理解算法时间复杂度?

如果你之前对此有过一面之缘,那么这里可以帮你加深你的印象。如果你是初学,那么这里可以帮助你理解。在想要理解时间复杂度之前,我们先来了解一下算法


算法是什么?

算法(algorithm)在数学(算学)和计算机科学之中,一个被定义好的、计算机可施行之指示的有限步骤或次序 ,常用于计算、数据处理(英语:Data processing)和自动推理。作为一个有效方法(英语:Effective method),算法被用于计算函数 ,它包含了一系列定义清晰的指令 ,并可于有限的时间及空间内清楚的表述出来 。(参考:维基百科)

简单来说,算法通常是指用计算机按照一定规则解决一类问题的明确和有限的步骤。

在了解算法之后,由于一个算法的优劣可以用时间复杂度与空间复杂度来衡量,所以理解算法时间复杂度对于理解算法也好,写好算法也好都有一定的益处。接下来我们先来了解一下算法的时间复杂度,之后结合计算理解。


时间复杂度又是什么呢?

计算机科学中,时间复杂性,又称时间复杂度,算法的时间复杂度是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦即考察输入值大小趋近无穷时的情况。(参考:百度百科)

在了解了时间复杂度这一概念后,咱们先看一个
,加深一下对其理解。


图为个人绘制,上图以部分常见时间复杂度函数图像为基准绘制。

附:一些常见的算法时间复杂度由小到大依次为:

Ο(1) < Ο(logn) < Ο(n) < Ο(nlogn) < Ο(n^2) < Ο(n^3)…<Ο(n!)

最后我们再结合几个简单的时间复杂度题来增进对时间复杂度的认识。

答案放在了文末,建议先做题后对照答案

1. (单选题)一个算法应该是( )。
A. 程序
B. 问题求解步骤的描述
C. 要满足五个基本特性
D. A 和C
2. (单选题)某算法的时间复杂度为O(n2) ,表明该算法的()。
A. 问题规模是n2
B. 执行时间等于n2
C. 执行时间与n2 成正比
D. 问题规模与n2 成正比
3. 下列叙述中正确的是( )
A. 一个算法的空间复杂度大,则其时间复杂度也必定大。
B. 一个算法的空间复杂度大,则其时间复杂度必定小。
C. 一个算法的时间复杂度大,则其空间复杂度必定小。
D. 上述三种说法都不对。

4. 有以下算法,其时间复杂度为()
void fun (int n) {
int i=0 ;
while (iii <=n)
i++ ;
A. O(logn )
B. O(nlogn)
C. O(³√n)
D. O(n)

看到这里,就进入了对答案时间

1.B 2.C 3.D 4.C 你全对了吗?无论是与否,都要恭喜你对时间复杂度又多理解一点!如果有疑问,欢迎评论区提出!


作者:code_流苏

如有错误,希望大家多多指正!
希望大家多多点赞支持!


目录
相关文章
|
1月前
|
机器学习/深度学习 缓存 算法
Python算法设计中的时间复杂度与空间复杂度,你真的理解对了吗?
【10月更文挑战第4天】在Python编程中,算法的设计与优化至关重要,尤其在数据处理、科学计算及机器学习领域。本文探讨了评估算法性能的核心指标——时间复杂度和空间复杂度。通过详细解释两者的概念,并提供快速排序和字符串反转的示例代码,帮助读者深入理解这些概念。同时,文章还讨论了如何在实际应用中平衡时间和空间复杂度,以实现最优性能。
66 6
|
3月前
|
机器学习/深度学习 算法 程序员
读《趣学算法》:重开算法之门,时间复杂度与空间复杂度
本文是作者阅读《趣学算法》后的笔记,介绍了算法复杂度的基本概念,包括时间复杂度和空间复杂度的不同阶表示,并通过具体例子展示了如何计算和理解算法的效率。
68 2
读《趣学算法》:重开算法之门,时间复杂度与空间复杂度
|
1月前
|
搜索推荐 算法
插入排序算法的平均时间复杂度解析
【10月更文挑战第12天】 插入排序是一种简单直观的排序算法,通过不断将未排序元素插入到已排序部分的合适位置来完成排序。其平均时间复杂度为$O(n^2)$,适用于小规模或部分有序的数据。尽管效率不高,但在特定场景下仍具优势。
|
4月前
|
机器学习/深度学习 存储 算法
颠覆认知!Python算法设计中的时间复杂度与空间复杂度,你真的理解对了吗?
【7月更文挑战第22天】在Python算法设计中,时间与空间复杂度是评估算法效能的核心。时间复杂度不仅限于大O表示法,还涵盖平均与最坏情况分析。空间复杂度虽关注额外存储,但也反映内存效率。平衡二者需视场景而定,如利用原地算法减少内存消耗,或牺牲空间加速执行。算法优化技巧,如分治与动态规划,助你在资源与速度间找寻最优解,从而高效应对大数据挑战。
50 3
|
1月前
|
机器学习/深度学习 存储 缓存
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
文章主要介绍了排序算法的分类、时间复杂度的概念和计算方法,以及常见的时间复杂度级别,并简单提及了空间复杂度。
26 1
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
|
1月前
|
存储 算法
算法的时间复杂度和空间复杂度
本文详细讨论了算法的时间复杂度和空间复杂度,包括它们的概念、计算方法和常见复杂度的对比,并通过多个实例解释了如何计算算法的时间和空间复杂度。
81 0
算法的时间复杂度和空间复杂度
|
2月前
|
算法 Python
震惊!Python 算法设计背后,时间复杂度与空间复杂度的惊天秘密大起底!
在 Python 算法设计中,理解并巧妙运用时间复杂度和空间复杂度的知识,是实现高效、优雅代码的必经之路。通过不断地实践和优化,我们能够在这两个因素之间找到最佳的平衡点,创造出性能卓越的程序。
40 4
|
1月前
|
算法 C语言
深入理解算法效率:时间复杂度与空间复杂度
深入理解算法效率:时间复杂度与空间复杂度
|
3月前
|
机器学习/深度学习 存储 算法
算法时间复杂度分析
这篇文章讲解了如何分析算法的时间复杂度,包括关注循环执行次数最多的代码段、总复杂度的确定、嵌套代码复杂度的计算方法,并提供了大O阶的推导步骤和常见时间复杂度的列表,同时还介绍了空间复杂度的概念及其重要性。
|
3月前
|
搜索推荐
九大排序算法时间复杂度、空间复杂度、稳定性
九大排序算法的时间复杂度、空间复杂度和稳定性,提供了对各种排序方法效率和特性的比较分析。
152 1
下一篇
无影云桌面