繁花似锦觅安宁,淡云流水度此生。
缘深缘浅随它去,花开花落总归尘。

教你看懂算法执行时间、算法时间复杂度、算法空间复杂度

一、算法执行时间

执行时间:所有语句执行时间的总和,与软硬件环境有关

语句执行时间:该条语句的重复执行次数 * 执行一次所需的时间

语句频度: 一条语句的重复执行次数

ps:执行时间并非精确,而是通过估计语句的执行次数得到的算法执行时间

将频度相加,可以得到最终的执行时间 T(n) = 2n³ + 2n² + 2n + 1

二、算法时间复杂度

上面我们知道了什么是算法的执行时间 ,由T(n)表示。现在聊聊算法的时间复杂度~

当n趋于无穷时, T(n)的数量级称为算法渐进时间复杂度,采用大O表示数量级,记作:T(n) = O(f(n))

fn(n) 一般是算法的最大语句频度(最高数量级),通常都忽略掉常系数,保留最高数量级。【2n³ + 2n² + 2n + 1 , 此处的n³就是最高数量级,系数和其他的数量级都可以忽略了】

因为:随着n的不断增大(抽象:直接理解n是很大的不可预知的数),算法执行时间的增长率和f(n)的增长率相同,简称时间复杂度(全名渐进时间复杂度)。

所以上述例子中的 时间复杂度 T(n) = O(n³)

此处贴一张某视频教程里的图,越平缓的时间复杂度算法越好哦~

三、算法空间复杂度

可以简单理解为这段算法需要占用多少存储空间(一个程序所需的空间包括算法本身所占用存储空间,输入数据占用的存储空间,算法在运行过程中的工作单元和实现算法所需要的辅助空间。但是计算算法空间复杂度时只分析算法执行时所需的辅助空间),与时间复杂度类似:S(n) = O(f(n)) 

 

posted @ 2022-01-14 17:09  良人非良  阅读(1539)  评论(0编辑  收藏  举报