【时间复杂度和空间复杂度】

文章目录


前言

衡量算法的效率分为两种情况:

1.时间复杂度

2.空间复杂度

时间复杂度

含义:算法中的基本操作的执行次数,为算法的时间复杂度

大O的渐进表示法

计算时间复杂度时,只需要计算大概执行次数

求复杂度默认是最坏情况下的

推导大O阶方法

1、用常数1取代运行时间中的所有加法常数。

2、在修改后的运行次数函数中,只保留最高阶项

3、如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。

练习

  1. 递归的时间复杂度

公式: 递归的时间复杂度:递归的次数*每次递归后执行的次数


7.斐波那契递归

空间复杂度

空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度 。

练习

只开辟了一个数组,那些常数不用另外开辟空间,都在数组内进行。

2.求第n个斐波那契数字

申请一个数组,把n个数字保存在数组里,每求完一个数字就返回给数组,所以要开辟n个空间。

3.阶乘递归Factorial的空间复杂度

每次递归都会在栈上开辟空间。递归几次就开辟多少块空间,比如求3,首先要调用3,然后返回2,1。

相关推荐
飞翔中文网几秒前
Java学习笔记之注解
java·笔记·学习
BossFriday3 分钟前
【手撸IM】SycllaDB 消息存储基础
java·分布式·中间件
霸道流氓气质4 分钟前
导入历史跟踪机制实战指南
java·linux·服务器
日取其半万世不竭5 分钟前
Uptime Kuma 应该放哪台机器?
java·docker·容器·https
消失的旧时光-19435 分钟前
Kotlin 协程设计思想(四):launch、async、withContext 到底有什么区别?
java·kotlin·async·launch·withcontext·deferred
夜白宋6 分钟前
【Redis深入】二、高性能
java·前端·redis
空圆小生7 分钟前
Vue3 + Spring Boot 全栈实战:从零搭建在线彩票模拟系统
java·spring boot·后端
devpotato9 分钟前
ArrayList 扩容机制:从源码细节到工程实践
java·list
运维瓦工12 分钟前
DevOps 生态介绍(八):docker &dockerfile 命令介绍及构建项目的第一个镜像
java·docker·devops
yurenpai(27届找实习中)15 分钟前
Spring AI 实战:从零实现 AI 对话的记忆与历史记录管理(附源码级解析)
java·spring·ai·prompt·word