【时间复杂度和空间复杂度】(内含超多实例练习)

news2025/1/4 19:29:20

【时间复杂度和空间复杂度】(内含超多实例练习)

  • 1. 算法效率
  • 2. 时间复杂度
    • 2.1 时间复杂度的概念
    • 2.2 实例练习
      • 2.2.1 数组中搜索数据
      • 2.2.2 冒泡排序
      • 2.2.3 二分查找
      • 2.2.4 阶乘递归
      • 2.2.5 斐波那契递归
  • 3. 空间复杂度
    • 3.1 空间复杂度的概念
    • 3.2 实例练习
      • 3.2.1 冒泡排序
      • 3.2.2 阶乘递归

1. 算法效率

在编程过程中衡量一个算法的好坏看的是算法效率
算法效率分为两种:

  1. 时间效率被称为时间复杂度,主要衡量一个算法的运行速度。
  2. 空间效率被称为空间复杂度,主要衡量一个算法所需的额外空间。

2. 时间复杂度

2.1 时间复杂度的概念

算法的时间复杂度是一个数学函数,一个算法所花费的时间与其中的语句的执行次数成正比。
算法中的基本操作的执行次数,为算法的时间复杂度。

2.2 实例练习

在练习之前我先举例一些常见的复杂度:

  • O(1) O(log N) O(N) O(N*log N) O(N^2)

算法的时间复杂度存在最好、平均、最坏的情况:

  • 最好情况:任意输入规模的最小运行次数(下界)
  • 平均情况:任意运行规模的期望运行次数
  • 最坏情况:任意输入规模的最大运行次数(上界)

下面是一些关于时间复杂度的练习题。

2.2.1 数组中搜索数据

在这里插入图片描述
对 find 的时间复杂度进行分析:

  • 最好情况: 1次找到
  • 最坏情况: N次找到
  • 平均情况: N/2次找到
    在实际中一般情况关注的是最坏情况,所以 find 的时间复杂度为O(N)。

2.2.2 冒泡排序

在这里插入图片描述

bubbleSort的时间复杂度为O(N^2)

2.2.3 二分查找

(
在这里插入图片描述

2.2.4 阶乘递归

在这里插入图片描述

大多数递归的时间复杂度=递归次数*每次递归执行的次数
所以factorial 的时间复杂度为 O(N)

2.2.5 斐波那契递归

在这里插入图片描述
在这里插入图片描述

因此,fib 的时间复杂度为O(2^N)

3. 空间复杂度

3.1 空间复杂度的概念

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

3.2 实例练习

3.2.1 冒泡排序

在这里插入图片描述

bubbleSort使用常数个额外空间,所以空间复杂度为 O(1)

3.2.2 阶乘递归

在这里插入图片描述

  • 递归调用了N次,开辟了N个栈帧,每个栈帧使用常数个空间,空间复杂度为O(N)
  • 大多数递归的空间复杂度=递归的次数*每次递归变量的个数

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Set Hashset底层原理 LinkedSet底层原理 Treeset 31

不重复只执行一次,排序是小到大,色图是接口类 Hashset底层原理 LinkedSet底层原理 Treeset 总结

AI+云边端协同,EasyCVR视频汇聚技术赋能安防监控新生态

随着信息技术的飞速发展和数字化时代的到来,安防监控领域的技术也在不断创新和突破。EasyCVR平台的视频汇聚技术作为其中的佼佼者,以其强大的视频处理、汇聚与融合能力,在安防监控领域展现出了巨大的应用潜力和价值。本文将详细介绍EasyCVR视…

权限束缚术:windows工具自动化权限提升

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理利用工具全自动化提权的相关操作方法 因为我没有相关的环境复现,所以没有成功 不过复现的操作就是下面整理的操作 溢出漏洞提权原理 利用溢出漏洞提权,实际上就是一次判断过往的…

极简聊天室-websocket版

再写一个极简聊天室的websocket版,在本例中,websocket仅用于服务器向客户端传输信息,客户端向服务器发送信息是传统的http post方式,用axios来实现的,当然websocket本身是支持双向通信,主要是为了方便跟前面…

Selenium 无法定位元素的几种解决方案

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1、frame/iframe表单嵌套 WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌的页面元素无法直接定位。 解决方法: d…

LLM大模型实战项目--基于ChatGLM2的小书虫文档阅读助手

本文介绍如此从零开始编写一个基于ChatGLM2的文档阅读助手 一、项目介绍 二、获取API接口 三、环境配置 四、代码实现 五、效果展示 一、项目介绍 小书虫📚 文档阅读助手是一个基于百度千帆大模型平台的Web应用程序,核心是清华大学训练的ChatGLM2大模…

算法加项目

1.仅加号 很简单&#xff0c;找到每次添加后最小的即可&#xff0c;这里不做演示。 2.采药 dp&#xff0c;for1数目&#xff0c;for2时间&#xff0c;简单的dp模板题目。 #include<bits/stdc.h> using namespace std; int n,m; const int N105,M105; long long a[M],b[M…

TInyWebServer面试题

一、项目介绍 &#xff08;1&#xff09;为什么要做这样一个项目&#xff1f; &#xff08;2&#xff09;介绍一下你的项目 这个项⽬是我在学习计算机⽹络和Linux socket编程过程中独⽴开发的轻量级Web服务器&#xff0c;服务器的⽹络模型是主从reactor加线程池的模式&#xf…

VMware虚拟机网络模式配置详解【原理,功能,特点层面】

VMware虚拟机网络模式配置详解【原理,功能,特点层面】 文章目录 VMware虚拟机网络模式配置详解【原理,功能,特点层面】桥接模式&#xff08;Bridged&#xff09;原理功能点介绍虚拟网络编辑器配置虚拟机配置 配置教程编辑-虚拟网络编辑器虚拟机网络配置 特点 NAT模式概念功能点…

数学建模--智能算法之蚁群优化算法

目录 基本原理 算法步骤 Python代码示例 应用领域 特点及改进 蚁群优化算法在解决哪些具体组合优化问题方面表现最为突出&#xff1f; 如何有效地改进蚁群优化算法以提高其收敛速度和避免陷入局部最优的问题&#xff1f; 蚁群优化算法与其他群体智能优化算法&#xff0…

三维旋转矩阵

前言 本文讲述三维旋转的矩阵推导&#xff0c;推导过程遵循下面的规则&#xff1a; 本文的坐标系是基于右手坐标系的逆时针旋转为正向旋转 围绕坐标轴的旋转 x x x轴 我们假设旋转的点为 P P P 假设旋转之前点 P P P的坐标为 ( x 0 , y 0 , z 0 ) (x_0,y_0,z_0) (x0​,y0​,…

CAN总线中注入拓展帧、远程帧,CAPL通用函数。

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe,博客目录大全,点击跳转👉 【测试需求】:CAN总线要求DUT 接收到非预期的扩展帧、远程帧时,通信正常,…

vulhub:nginx解析漏洞nginx_parsing

这个解析漏洞其实是PHP CGI的漏洞&#xff0c;在PHP的配置文件中有一个关键的选项cgi.fix_pathinfo默认是开启的&#xff0c;当URL中有不存在的文件&#xff0c;PHP就会向前递归解析。在一个文件/xx.jpg后面加上/.php会将 /xx.jpg/xx.php 解析为 php 文件 条件&#xff1a; Ngi…

釉面陶瓷器皿和玻璃器皿 SOR/2016-175认证

釉面陶瓷制品和釉面玻璃制品设计用于盛装食品&#xff0c;包括扁平餐具、杯子或马克杯、小号或大号凹形器皿&#xff08;杯子或马克杯除外&#xff09;以及水罐。这些法规适用于以下釉面陶瓷制品和釉面玻璃制品&#xff1a; 完全或部分由陶瓷或玻璃制成完全或部分覆盖含铅或镉…

MATLAB(12)预测模型

一、前言 在MATLAB中创建一个预测模型通常涉及多个步骤&#xff0c;包括数据准备、模型选择、训练模型、评估模型以及使用模型进行预测。以下是一个简化的例子&#xff0c;说明如何使用MATLAB中的内置函数来创建一个基于线性回归的预测模型。这个例子将使用MATLAB的fitlm函数来…

C语言函数初识

文章目录 &#x1f34a;自我介绍&#x1f34a;函数初识前言概念具体实例解释函数的实用性 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以&#xff1a;点赞关注评论收藏&#xff08;一键四连&#xff09;哦~ &#x1f34a;自我介绍 Hello,大家好&#xff0c;我是小珑也…

院人全年无休计划背后,芒果把To C综艺玩明白了

《种地吧》掉粉闹得沸沸扬扬&#xff0c;不少禾伙人希望芒果把“十个勤天”挖走&#xff0c;毕竟芒果做综艺群像确实是一把好手&#xff0c;“院人”就是最好的例子。 在#种地吧粉丝让芒果把十个勤天挖走#的话题登上热搜之后&#xff0c;“学分们”&#xff08;院人粉丝&#…

JS等待所有方法执行完成在执行下一个方法,promise All

在工作中会遇到这样一个场景&#xff0c;前端需要拿到不同接口返回的结果在执行某个逻辑&#xff0c;当使用链式那样的方式去请求&#xff0c;等一个接口响应完在请求下一个接口&#xff0c;这种方法就会导致请求时间特别长。这个时候就可以使用promise all&#xff0c;同时请求…

国产麒麟操作系统下搞单机版

去年纪委单位的一个项目&#xff0c;因为单位保密性质&#xff0c;档案必须要保密&#xff0c;要求采用单机版&#xff0c; 要求跟EXE那样&#xff0c;双击打开&#xff0c;阿公单位信息人员电脑操作水平化滞后还是相当严重啊。 去年已经给他花了时间按他们的要求实现了。 上周…

【直角三角形】python刷题记录

R3-新增每日一题打卡。 目录 思路&#xff08;遍历中间乘法原理&#xff09;&#xff1a; 乘法原理如下&#xff1a; ps: python的zip操作 矩阵转置 并行遍历 对象组合 创建字典 处理不等迭代长度 思路&#xff1a; 这题遍历主要从直角点开始遍历&#xff0c;用到了…