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

文章目录


前言

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

1.时间复杂度

2.空间复杂度

时间复杂度

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

大O的渐进表示法

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

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

推导大O阶方法

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

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

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

练习

  1. 递归的时间复杂度

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


7.斐波那契递归

空间复杂度

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

练习

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

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

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

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

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

相关推荐
都叫我大帅哥2 小时前
给 Java 程序员的 CSRF 攻击详解:从原理到防御实战
java
江南十四行2 小时前
Spring框架核心(上)——IoC控制反转与DI依赖注入详解
java·后端·spring
fb_123453 小时前
Linux磁盘分区从入门到实操:MBR_GPT全解析+分区工具实战指南
java·linux·gpt
码智社4 小时前
JSON 零基础到资深全体系教程
java·json
wgego5 小时前
基础的反序列化一些总结(php和java)
java·开发语言·笔记
机建狂魔6 小时前
Codex 接入第三方模型 API 实战:以 Mimo 为例
java·服务器·数据库·ai·ai编程·codex
山峰哥6 小时前
数据库工程与SQL调优:从慢查询到秒级响应的实战之路
java·开发语言·数据库·sql·深度优先·启发式算法
乐观的Terry6 小时前
11、发布系统-用户认证与权限体系
java·spring boot·spring·spring cloud·mybatis
前端开发张小七6 小时前
Java 学习笔记 · 第二课:面向对象核心(封装、继承、多态)及接口与异常
java·后端·程序员
wangjialelele6 小时前
Selenium4 + Java Web自动化测试入门指南:从环境搭建到常用操作详解
java·开发语言·前端·测试工具·自动化