那些年忽略的知识:时间复杂度和空间复杂度详解
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
熊泽有话说
扫码关注公众号
扫码阅读
手机扫码阅读
概述
文章讲述了作者在学习和理解算法的时间复杂度与空间复杂度的过程。作者通过回答学妹的问题,意识到自己对于复杂度的概念理解模糊,因此查阅资料进行复习总结。
时间复杂度
时间复杂度是衡量算法执行时间增长趋势的一种标准,常用大O表示法表示。文章通过一个具体代码例子介绍了如何推导时间复杂度。时间复杂度的常用类别包括:
- O(1) - 常数阶:无循环递归,执行次数固定。
- O(n) - 线性阶:一层循环,执行次数随n变化。
- O(n²) - 平方阶:双层循环,执行次数为n的平方。
- O(logN) - 对数阶:循环条件是乘法或除法的累积结果。
- O(nlogN) - 线性对数阶:线性与对数阶的结合。
时间复杂度的计算规则包括忽略常数、系数与低次项。
空间复杂度
空间复杂度衡量算法的存储空间增长趋势。常见空间复杂度有O(1)、O(n)、O(n²),主要依据算法中临时变量的数量和是否随输入数据的大小线性增长来判断。
总结
通过重新梳理,作者对时间复杂度和空间复杂度有了更深的理解,能够在编写代码时预估算法的效率。
参考资料
- 百度百科:对数公式
- 如何理解时间复杂度和空间复杂度:https://www.cnblogs.com/magicg/p/15178750.html
- C#算法的时间复杂度和空间复杂度:https://blog.csdn.net/q_17600689511/article/details/100189543
- c#算法时间复杂度 面试必看:https://blog.csdn.net/weixin_44370124/article/details/119321322
熊泽有话说
熊泽有话说
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
熊泽有话说的其他文章
开发实用小技巧:元组-轻量级数据容器的艺术
本文系统性的覆盖了元组的完整知识体系,采用\x26quot;基础概念→实战技巧→进阶场景\x26quot;的结构说明,包含多个场景代码示例和性能优化建议。主要重点在于\x26quot;解构运算符\x26quot;和\x26quot;模式匹配\x26quot;这两个革命性特性,它们能显著提升代码可读性。
NoSql非关系型数据库之MongoDB应用(三):MongoDB在项目中的初步应用
NoSql非关系型数据库之MongoDB应用(三):MongoDB在项目中的初步应用
C#字符串拼接你用的是哪种方式?
今天(2021-11-02)在查看代码复盘的时候,看到字符串拼接这一块,突然福如心至,回忆起用过的几种字符串拼接方式。\x0a\x0a然后百度简单梳理一下,看一看你用过哪种,如有其他方式,可以在评论区聊聊用用。
地摊经济火了!城管喊你出来摆摊啦!
今年全国“两会”期间,天津市杨宝玲提出了“地摊经济”建议,引起了人们的普遍共鸣。在我国经济急需复苏的情况下,地摊经济所具备的活力,能有效拉动内需。
10分钟带你进入Swagger的世界,快来看一看吧
10分钟学会swagger,闲着也是闲着,你确定不来看看?
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线