算法时间、空间复杂度(二)

目录

大O渐进表示法 

一、时间复杂度量级的判断

定义:

例一:执行2*N+1次

例二:执行M+N次

例三:执行已知次数

例四:存在最好情况和最坏情况

顺序查找

冒泡排序

二分查找

例五:阶乘递归

​编辑

例六:斐波那契递归

​编辑

总结:


算法时间、空间复杂度(一)-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Xiaodao12345djs/article/details/142931619?spm=1001.2014.3001.5501

大O渐进表示法 

我们通常用大O渐进表示法来表示时间复杂度和空间复杂度的量级

例如:如果一个程序执行了2N+1次,那么这个程序的时间复杂度属于O(N)这个量级

一、时间复杂度量级的判断

定义:

算法中的基本操作的次数,与环境无关

例一:执行2*N+1次

时间复杂度的量级为O(N)

  • 保留执行次数的最高阶
  • 去掉最高阶的常系数
for(int k=0; k<2*N; k++)
{++count;
}while(w--)
{++count;
}

例二:执行M+N次

时间复杂度为O(N)或者O(M)

  • 如果M>>N,时间复杂度量级为O(M)
  • 如果N>>M,时间复杂度量级为O(N)
  • 如果相差不多,相当于执行2*N次或者2*M次,所以时间复杂度量级为O(N)或者O(M)
for(k = 0; k < M; k++)
{count++;
}
for(k = 0; k < N ; k++)
{count++;
}

例三:执行已知次数

时间复杂度位O(1)

for(int k = 0; k < 10; k++)
{count++;
}

例四:存在最好情况和最坏情况

如果出现最好情况执行次数和最坏情况执行次数,看最坏情况(下限)

  • 顺序查找

const char* strchr(const char* str, int characeter)
while(*str)
{if(*str == character){return str;}++str;
}

最好情况:执行1次就能找到

最坏情况:执行N次才能找到

时间复杂度为O(N)

  • 冒泡排序

最好情况:N-1次

最坏情况:N(N-1)/2(等差数列)

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

  • 二分查找

最好情况:1次

最坏情况:logN(以2为底N的对数,在C语言中会简化为logN,有的书上会简化成lgN(不推荐))

时间复杂度为O(logN)

​​​​​​​例五:阶乘递归

long long Fac(size_t N)
{if(0 == N)return 1;return Fac(N-1)*N
}

时间复杂度为O(N)

例六:斐波那契递归

long long Fib(size_t N)
{if(N<3)return 1;return Fib(N-1)+Fib(N-2);
}

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

总结:

  • O(1)           常数阶
  • O(logN)       对数阶
  • O(N)           线性
  • O(N*logN)    nlog阶
  • O(N^2)        平方阶
  • O(N^3)        立方阶
  • O(2^N)        指数阶

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

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

相关文章

JIT详解

文章目录 JIT为什么说 Java 语言“编译与解释并存”&#xff1f; JIT原理JVM 架构简览JIT 编译流程JIT 编译器的实现优化策略方法内联逃逸分析 JIT 在Java中&#xff0c;JIT&#xff08;Just-In-Time&#xff09;编译器是Java虚拟机&#xff08;JVM&#xff09;的一个重要组成…

韩国 NEL动物医疗中心:犬二尖瓣修复术连获成功

“守护心脏的神之手” 在小型犬心脏疾病根本治疗&#xff08;犬心脏修复手术&#xff09;方面取得重大突破&#xff0c;已成功完成 16 例手术。 韩国 NEL动物医疗中心&#xff08;NEL ANIMAL MEDICAL CENTER&#xff09;严泰欽院长带领的心脏手术团队&#xff0c;为 16 只宠物…

Lumerical学习——分析工具(Analysis tools)

一、分析工具和模拟环境&#xff08;Analysis tools and the simulation environment&#xff09; 模拟计算完成后&#xff0c;模拟计算数据紧接着写到模拟工程文件中&#xff1b;甚至当模拟计算提前结束时计算得到的部分数据集也会写到文件中。当模拟完成后单击退出按钮、或者…

【行业观察】三折机不够看?苹果研发四折叠屏iPhone

随着智能手机市场的日益成熟&#xff0c;消费者对手机形态和功能的需求也在不断升级。近年来&#xff0c;折叠屏手机凭借其独特的形态和更大的显示面积&#xff0c;成为了市场的新宠。而在这场折叠屏手机的竞争中&#xff0c;苹果作为智能手机行业的领头羊&#xff0c;自然也不…

Jmeter脚本录制、Badboy脚本录制

目录 Jmeter脚本录制 Badboy脚本录制 Jmeter脚本录制 1、首先添加一个http测试脚本记录器 2、选择目标控制器&#xff0c;把录制的内容放到的地方 3、分组&#xff0c;就是在录制的时候&#xff0c;每一步操作之间间隔方式&#xff0c;根据自己需要进行选择 4、开启浏览…

AI开发-三方库-Hugging Face-Pipelines

1 需求 需求1&#xff1a;pipeline支持的任务类型 需求2&#xff1a;推理加速使用CPU还是GPU 需求3&#xff1a;基于pipeline的文本分类示例 需求4&#xff1a;pipeline实现原理 模型使用步骤&#xff08;Raw text -》Input IDs -》Logits -》Predictions&#xff09;&…

跨域问题及常用的5种解决方案

1.什么是跨域问题&#xff1f; 跨域问题通常指的是在浏览器中由于同源策略的限制而产生的问题。同源策略&#xff08;Same-origin policy&#xff09;是浏览器的一种安全措施&#xff0c;它要求请求的域名、协议和端口必须与提供资源的网站相同。当一个网页尝试访问另一个来源…

基于SpringBoot+Vue+uniapp的在线招聘平台的详细设计和实现

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不…

图论day62|拓扑排序理论基础、117.软件构建(卡码网)、最短路径之dijkstra理论基、47.参加科学大会(卡码网 第六期模拟笔试)

图论day62|拓扑排序理论基础、117.软件构建&#xff08;卡码网&#xff09;、最短路径之dijkstra理论基、47.参加科学大会&#xff08;卡码网 第六期模拟笔试&#xff09; 拓扑排序理论基础117.软件构建&#xff08;卡码网&#xff09;最短路径之dijkstra理论基础47.参加科学大…

IT招聘乱象的全面分析

近年来&#xff0c;IT行业的招聘要求似乎越来越苛刻&#xff0c;甚至有些不切实际。许多企业在招聘时&#xff0c;不仅要求前端工程师具备UI设计能力&#xff0c;还希望后端工程师精通K8S服务器运维&#xff0c;更有甚至希望研发经理掌握所有前后端框架和最新开发技术。这种招聘…

day-67 二叉树展开为链表

思路 深度优先遍历&#xff1a;首先将二叉树进行前序遍历&#xff0c;将每个遍历的节点存入一个链表当中 解题过程 将链表还原为只有右子树的二叉树即可 Code /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* Tr…

Hi3061M开发板——系统时钟频率

这里写目录标题 前言MCU时钟介绍PLLCRG_ConfigPLL时钟配置另附完整系统时钟结构图 前言 Hi3061M使用过程中&#xff0c;AD和APT输出&#xff0c;都需要考虑到时钟频率&#xff0c;特别是APT&#xff0c;关系到PWM的输出频率。于是就研究了下相关的时钟。 MCU时钟介绍 MCU共有…

认识Java的异常

异常机制 异常机制指的是程序出现错误时&#xff0c;程序的处理方式。 程序的错误分为三种&#xff1a; 编译错误&#xff1a;由于没有遵循对于语言的语法规则&#xff0c;编辑器可以自动发现并提示的错误位置和原因。逻辑错误&#xff1a;程序没有按照预期的顺序执行。运行…

FreeRTOS应用开发学习

了解FreeRTOS 任务相关API FreeRTOS任务创建API FreeRTOS 中&#xff0c;任务的创建有两种方法&#xff0c;一种是使用动态创建&#xff0c;一种是使用静态创建。动态创建时&#xff0c;任务控制块和栈的内存是创建任务时动态分配的&#xff0c;任务删除时&#xff0c;内存可…

申请商家转账到零钱功能所需材料及必过攻略

商家转账到零钱功能的快速开通方法&#xff0c;可以归纳为以下几个步骤&#xff1a; 一、确认商户资格与账号状态 1. 商户类型&#xff1a;该功能通常只对公司性质的商户开放&#xff0c;个体工商户及小微商户暂时无法申请。商家需为微信支付认证用户。 2. 账号状态&#xff…

网络层及ip报头

★★★★★默写&#xff1a; A类&#xff1a;0~127 B类&#xff1a;128~191 C类&#xff1a;192~223 A类私网&#xff1a;10.0.0 - 10.255.255.255 B类私网&#xff1a;172.16.0.0 - 172.31.255.255 C类私网&#xff1a;19.168.0.0 - 192.168.255.255 特殊&#xff1a; 0.0.0…

新手爬虫DAY1

这个错误信息表明在你的Python程序中&#xff0c;re.search() 函数没有找到预期的匹配项&#xff0c;因此返回了 None。当你尝试在 None 对象上调用 group(1) 方法时&#xff0c;Python 抛出了一个 AttributeError。 具体来说&#xff0c;错误发生在 pc.py 文件的第6行&#x…

AI大模型与相对论的结合点的思考、应用及相对论原理与公式表达

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下AI大模型与相对论的结合点的思考、应用及相对论原理与公式表达。在阐述相对论原理的基础上&#xff0c;通过数学复杂公式&#xff0c;分析了人工智能大模型在相对论领域的应用前景。文章深入挖掘了两大领域之间的联…

厨房老鼠数据集:掀起餐饮卫生监测的科技浪潮

厨房老鼠数据集&#xff1a;掀起餐饮卫生监测的科技浪潮 摘要&#xff1a;本文深入探讨了厨房老鼠数据集在餐饮行业卫生管理中的重要性及其相关技术应用。厨房老鼠数据集通过收集夜间厨房图像、老鼠标注信息以及环境数据&#xff0c;为深度学习模型提供了丰富的训练样本。基于…

MongoDB 安装配置及配置和启动服务

MongoDB 安装配置 附&#xff1a;MongoDB官网下载地址&#xff1a; https://www.mongodb.com/download-center/community 注&#xff1a; 官网可以下载最新版的MongoDB安装包&#xff0c;有MSI安装版和ZIP安装版。我们课堂上使用4.4.4的ZIP安装版。安装版参考博客&#xff1…