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

文章目录


前言

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

1.时间复杂度

2.空间复杂度

时间复杂度

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

大O的渐进表示法

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

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

推导大O阶方法

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

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

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

练习

  1. 递归的时间复杂度

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


7.斐波那契递归

空间复杂度

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

练习

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

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

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

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

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

相关推荐
小韩学长yyds1 分钟前
Java序列化避坑指南:明确这4种场景,再也不盲目实现Serializable
java·序列化
仟濹3 分钟前
【Java基础】多态 | 打卡day2
java·开发语言
Re.不晚3 分钟前
JAVA进阶之路——无奖问答挑战2
java·开发语言
Ro Jace1 小时前
计算机专业基础教材
java·开发语言
mango_mangojuice1 小时前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
程序员侠客行1 小时前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis
时艰.1 小时前
Java 并发编程 — 并发容器 + CPU 缓存 + Disruptor
java·开发语言·缓存
丶小鱼丶1 小时前
并发编程之【优雅地结束线程的执行】
java
市场部需要一个软件开发岗位1 小时前
JAVA开发常见安全问题:Cookie 中明文存储用户名、密码
android·java·安全
忆~遂愿2 小时前
GE 引擎进阶:依赖图的原子性管理与异构算子协作调度
java·开发语言·人工智能