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

文章目录

  • 前言
  • 时间复杂度
    • 大O的渐进表示法
    • 推导大O阶方法
    • 练习
  • 空间复杂度
    • 练习


前言

衡量算法的效率分为两种情况:
1.时间复杂度
2.空间复杂度

时间复杂度

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

大O的渐进表示法

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

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

推导大O阶方法

1、用常数1取代运行时间中的所有加法常数。
2、在修改后的运行次数函数中,只保留最高阶项
3、如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。

练习

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
4.
在这里插入图片描述
5.
在这里插入图片描述

  1. 递归的时间复杂度

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

在这里插入图片描述
在这里插入图片描述
7.斐波那契递归

在这里插入图片描述

在这里插入图片描述

空间复杂度

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

练习

在这里插入图片描述
只开辟了一个数组,那些常数不用另外开辟空间,都在数组内进行。

2.求第n个斐波那契数字
在这里插入图片描述
申请一个数组,把n个数字保存在数组里,每求完一个数字就返回给数组,所以要开辟n个空间。

3.阶乘递归Factorial的空间复杂度
在这里插入图片描述
在这里插入图片描述
每次递归都会在栈上开辟空间。递归几次就开辟多少块空间,比如求3,首先要调用3,然后返回2,1。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/141068.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络安全专用产品有哪些?能一一列举出来吗?

网络安全专用产品是专门为网络安全设计的防护产品。那你知道网络安全专用产品有哪些?这里我们小编就给大家汇总了一下,仅供参考哈! 网络安全专用产品有哪些? 1、数据备份与恢复产品 2、防火墙 3、入侵检测系统 4、入侵防御系统…

IDEA 2023搭建 SpringMVC +FreeMarker+JDBC

1.IDEA的版本,目前最新是2023,要选择旗舰版。笔者曾选择社区版,发现少了很多功能。只能重新安装。 2.安装好以后的第1件事,是设置Maven,并将下载地址改为淘定站,参照这篇一次包会——最新IDEA配置Maven指南…

网络渗透测试(被动扫描)

被动扫描 主要是指的是在目标无法察觉的情况下进行信息搜集。在Google上进行人名的搜素就是一次被动扫描。最经典的被动扫描技术就是"Google Hacking"技术。由于Google退出中国,暂时无法使用。在此介绍三个优秀的信息搜集工具 被动扫描范围 1.企业网络…

Redis应用之二分布式锁2

一、前言 前一篇 Redis应用之二分布式锁 我们介绍了使用SETNX来实现分布式锁,并且还遗留了一个Bug,今天我们对代码进行优化,然后介绍一下Redisson以及数据库的乐观锁悲观锁怎么用。 二、SetNX分布式锁优化后代码 RedisService.java Inven…

Python数据容器之[列表]

Python数据容器 Python中的数据容器: 一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素 每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。 数据容器根据特点的不同,如: 是否支…

Python数据容器(序列操作)

序列 1.什么是序列 序列是指:内容连续、有序。可以使用下标索引的一类数据容器 列表、元组、字符串。均可以视为序列 2.序列的常用操作 - 切片 语法:序列[起始下标:结束下标:步长]起始下标表示从何处开始,可以留空,留空视作从…

python 根据经纬度绘制点图 极投影

参考了python cartopy手动导入地图数据绘制底图/python地图上绘制散点图:Downloading:warnings/散点图添加图里标签_python add_feature-CSDN博客 点的颜色按照时间显示 # -*- coding: utf-8 -*- """ Created on Mon Nov 13 11:32:48 2023"&quo…

数据结构—数组栈的实现

前言:各位小伙伴们我们前面已经学习了带头双向循环链表,数据结构中还有一些特殊的线性表,如栈和队列,那么我们今天就来实现数组栈。 目录: 一、 栈的概念 二、 栈的实现 三、 代码测试 栈的概念: 栈的概念…

TSINGSEE视频智能分析人员入侵AI检测算法如何让城市管理更加高效、智慧?

在城市管理场景中,经常面临着禁区垂钓、非法捕捞、行人闯红灯、小区盗窃、车辆乱停乱放等一系列管理难题,这给城市发展带来了不小的阻力,同时也极易增加管理的人力、物力和财力。传统的人员巡逻监管效率低并且存在时间差,很难及时…

2023年数维杯国际大学生数学建模挑战赛

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 cs数模团队在数维杯前为大家提供了许多资料的内容呀&#xff0…

Python 如何实现 Command(命令)模式?什么是 Command(命令)设计模式?

什么是命令设计模式? 命令模式(Command Design Pattern)是一种行为设计模式,它将请求封装成一个对象,从而允许参数化客户端对象,排队请求,或者对请求进行操作。命令模式支持撤销操作&#xff0…

傅里叶分析(2)

在《傅里叶分析(1)》中,讲述了连续信号的傅里叶分析方法,本文讲述离散信号的傅里叶分析方法。 虽然电、声、光、机械振动等信号在物理上是连续函数,但在实际工程中,其通常为离散信号,即若干离散…

设计模式之模版方法(TemplateMethod)

模版方法 钩子函数 回调函数 在父类里面有一个模版方法,在这个方法里面调用了op1,op2,op3… 在子类里面如果想要改变父类的op1和op2 只需要重写op1和op2,那么这个重写之后的方法,可以在父类里面直接调用的到 例子: J…

ctfshow sql171-179

mysql 先打开我们本地的mysql,可以看到这些数据库 information_schema information_schema 库: 是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息比如数据库名,数据库表, SCHEMATA表: 提供了当前MySQL实例…

Linux下MSSQL (SQL Server)数据库无法启动故障处理

有同事反馈一套CentOS7下的mssql server2017无法启动需要我帮忙看看,启动报错情况如下 检查日志并没有更新日志信息 乍一看mssql-server服务有问题,检查mssql也确实没有进程 既然服务有问题,那么我们用一种方式直接手工后台启动mssql引擎来…

22.构造一个关于员工信息的结构体数组,存储十个员工的信息

结构体问题。构造一个关于员工信息的结构体数组,存储十个员工的信息,包括员工工号,员工工资,员工所得税,员工实发工资。要求工号和工资由键盘输入,并计算出员工所得税(所得税工资*0.2&#xff0…

C语言--1,5,10人民币若干,现在需要18元,一共有多少种?

今天小编给大家分享一下穷举法的一道典型例题 一.题目描述 1,5,10人民币若干,现在需要18元,一共有多少种? 二.思路分析 总共有18块钱,设1元有x张,5元有y张,10元有z张,则有表达式:x5y10z18,穷举法最重要的…

java网络编程之UDP协议

文章目录 UDP简介一发一收客户端:服务端: 多发多收实现多开客户端:服务端 UDP简介 UDP(User Datagram Protocol) DatagramSocket 用于创建客户端、服务端DatagramSocket() :创建客户端的Socket对象,系统随…

Java 算法篇-深入了解单链表的反转(实现:用 5 种方式来具体实现)

🔥博客主页: 小扳_-CSDN博客 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 单链表的反转说明 2.0 单链表的创建 3.0 实现单链表反转的五种方法 3.1 实现单链表反转 - 循环复制(迭代法) 3.2 实现单链表反转 - 头插法 3…

什么是浏览器指纹?指纹浏览器如何避免浏览器指纹的追踪识别?

在做独立站跨境电商的过程中,海外社交媒体平台已成为我们必不可少的交易渠道。但是,由于各大平台对账号管理极其严格,对账户进行严密监控也成为了常态。这当然与浏览器指纹识别有关,今天龙哥就给大家科普一下什么是浏览器指纹&…