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

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

一、算法执行时间

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

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

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

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 @   良人非良  阅读(1736)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2021-01-14 2022年前端最新最全面试题(答案持续更新中~)
2021-01-14 2021年前端面试题-通信/编程/原理篇
2021-01-14 2021年前端面试题-webpack篇
2021-01-14 2021年前端面试题-vue篇
2021-01-14 2021年前端面试题-浏览器及http篇
点击右上角即可分享
微信分享提示