在哪个网站做民营企业申报/百度推广创意范例

在哪个网站做民营企业申报,百度推广创意范例,天元建设集团有限公司张桂玉,扫描购物网站建设我们知道代码和代码之间算法的不同,一定影响了代码的执行效率,那么我们该如何评判算法的好坏呢?这就涉及到了我们算法效率的分析了。 📖一、算法效率 所谓算法效率的分析分为两种:第一种时间效率,又称时间…

我们知道代码和代码之间算法的不同,一定影响了代码的执行效率,那么我们该如何评判算法的好坏呢?这就涉及到了我们算法效率的分析了。

📖一、算法效率

所谓算法效率的分析分为两种:第一种时间效率,又称时间复杂度。第二种空间效率,又称空间复杂度。其中,时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间。

📖二、时间复杂度 

🐬1、概念

算法的时间复杂度其实是一个数学函数,它描述了该算法的运行时间,然而实际上,我们并不能准确的,将一个算法所耗费的时间算出来,只有在机器上跑起来,才能够得到,但是一段代码可能有多个算法,难道我们要每个都上机器上跑吗?这显然是不现实的,因此我们在这种情况下就得到了时间复杂度的分析方式:一个算法所花费的时间与其中语句的执行次数成正比例,因此我们将算法中的基本操作的执行次数,为算法的时间复杂度,并且我们将时间复杂度的表示方法称为大O的渐进表示法

🐬2、大O的渐进表示法 

我们将大O符号作为用于描述函数渐进行为的数学符号表示形式为:O(?)

?: 算法中的基本操作的执行次数

现在我们了解了大O的渐进表示法的使用,那么我们接下来看一下这段代码

public class  Test{public static void main(String[] args) {int count = 0;for (int i = 0; i < n; i++) {count++;}System.out.println(count);}
}

我们可以明确发现算法中的基本操作的执行次数为n次,那么我们的时间复杂度就为O(n)

再来看下面这段代码

public class  Test{void func1(int N){int count = 0;for (int i = 0; i < N ; i++) {for (int j = 0; j < N ; j++) {count++;}}for (int k = 0; k < 2 * N ; k++) {count++;}int M = 10;while ((M--) > 0) {count++;}System.out.println(count);}public static void main(String[] args) {}
}

我们可以发现第一个for循环的执行一次第二个for循环就执行N次,因此上面一共执行了N*N=N^2次,中间的for循环,显然是执行了2N次,而最后的while循环,由于M=10,因此执行了10次,那么这段代码的总体执行次数为(N^2+2N+10)次,那么我们的时间复杂度就是O(N^2+2N+10)次吗?

其实不是的,这时其实又涉及到了另一个方法:推导大O阶方法 

🐬3、推导大O阶方法 

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

那么我们还是以上面的代码为例,我们的执行次数为N^2+2N+10,根据规则用常数1,取代所有常数:N^2+2N+1,在修改后的运行次数函数中,只保留最高阶项:N^2,如果最高阶项存在且不是1,则去除与这个项目相乘的常数:(N^2)/1 = N^2

最后根据这个规则我们就得到了最终的时间复杂度为:O(N^2)

通过上面我们会发现大O的渐进表示法去掉了那些对结果影响不大的项,简洁明了的表示出了执想次数。因此我们在实际中一般情况关注的是算法的最坏运行情况.

🐬4、常见的时间复杂度

术语
O(1)常数阶
O(N)线性阶
O(N^2)平方阶
O(logN)对数阶
O(NlogN)NlogN阶
O(N^3)立方阶
O(2^N)指数阶

从上往下时间复杂度不断增大 。

🐬5、实例

好了现在我们已经成功的了解了什么是时间复杂度和时间复杂度的表示方法了,接下来我能一起看几道经典例子。

📌(1)执行次数明确

void func(int N) {int count = 0;for (int k = 0; k < 100; k++) {count++;}}System.out.println(count);

在这段代码中我们明确的可以发现我们的算法基本操作的执行次数为100次,根据规则我们要用常数1取代所有常数,因此我们这段代码的时间复杂度应为O(1)。 而在这里我们其实也得出了一个结论,只有执行次数明确,我们就可以说这段算法的时间复杂度为O(1)(注意:并不是说整体代码的时间复杂度,只是单指这段算法)。

📌(2)冒泡排序

void bubbleSort(int[] array) {for (int end = array.length; end > 0; end--) {boolean sorted = true;for (int i = 1; i < end; i++) {if (array[i - 1] > array[i]) {Swap(array, i - 1, i);sorted = false;}}if (sorted == true) {break;}}}

首先我们将数组的长度看作N,对于一些初学者来说, 一个for循环执行一次另一个for循环执行N-1次,我们N=5为例4+3+2+1+0=10,最后为O(1)这显然是没有问题的,但是当他等于N时我们用这种方法显然是没有办法计算的,然而我们知道,算法中的基本操作的执行次数,为算法的时间复杂度,那么这段代码的基本操作是什么呢?,显而易见,就是两个数的交换,那么我们就知道了其实他的交换次数就是我们的执行次数。

其中我们根据他的交换次数得出的规律发现他是一个以1为公差的等差数列,因此利用等差数列求和公式就能得出他的总次数,最后根据规则得到他的时间复杂度为O(N^2) 

📌(3)二分查找

 int binarySearch(int[] array, int value) {int begin = 0;int end = array.length - 1;while (begin <= end) {int mid = begin + ((end-begin) / 2);if (array[mid] < value)begin = mid + 1;else if (array[mid] > value)end = mid - 1;elsereturn mid;}return -1;}

二分查找又称折半查找,原理是先取中间数,将中间数与我们要找的数进行比较,如果不是在进行折半,知道找到,这题我们其实可以将他看成一个纸条,我们要找一段纸条的长度,如果我们先将他这半一次,就得到了这是最好的情况时间复杂度就为O(1),但是如果我们要找X次才能找到,那么O(X),才是我们的时间复杂度,那么X等于什么呢?我们可以想象找一次纸条就要折半,如果一次找到那么乘于一次2就等于他的长度,X次找到就是乘于X个2即2^X=N。那么

logN在算法分析中表示是 底数为2,对数为N,因此时间复杂度为O(logN)。 

📌(4)递归

long factorial(int N) {return N < 2 ? N : factorial(N-1) * N;}

我们来看这段代码,我们发现他是一段递归,而对于他的时间复杂度,我们先把N看成是1,当N=1时,我们执行次数为1,当N=2时,执行次数为2,当N=3时,执行次数为3,因此当这段代码为N时,我们总体的执行次数应为N,所以我们的时间复杂度为O(N)

📖三、空间复杂度 

🐬1、概念  

空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度。空间复杂度计算规则基
本跟时间复杂度类似,也使用大O渐进表示法。 

📌(1)

他的临时空间变量, 就是三个临时变量,所以空间复杂度为O(1)

📌(2)

他的临时空间变量为n+1,所以空间复杂度为O(n)。

📌(3) 

根据上面所学N为几就会执行几次,同样也会开辟几个临时空间,因此他的临时空间变量为N,所以空间复杂度为O(N)


好的今天我们要分享的就到这里了,我们下一篇在见!

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

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

相关文章

Clisoft SOS设置Workarea

Clisoft SOS设置Workarea 本人也是刚刚接触这个软件&#xff0c;可能有些方面不够完善&#xff0c;欢迎大佬指点。 这里就不演示创建创建Server和Project&#xff0c;可以参考Clisoft SOS设置Server和Project 创建Workarea 创建好目录并设置好权限 # 创建组 [bhlumaster ~]$…

安徽省乡镇界面图层+arcgis数据shp格式-乡镇名称和编码2020年+wgs84坐标内容测评

最新安徽省乡镇界面图层arcgis数据shp格式-乡镇名称和编码2020年wgs84坐标无偏移

LabVIEW软件Bug的定义与修改

在LabVIEW软件开发过程中&#xff0c;bug&#xff08;程序错误或缺陷&#xff09;指的是程序中导致不符合预期行为的任何问题。Bug可能是由于编码错误、逻辑漏洞、硬件兼容性问题、系统资源限制等因素引起的。它可能会导致程序崩溃、功能无法正常执行或输出结果不符合预期。理解…

WebRTC 在视频联网平台中的应用:开启实时通信新篇章

在当今这个以数字化为显著特征的时代浪潮之下&#xff0c;实时通信已然稳稳扎根于人们生活与工作的方方面面&#xff0c;成为了其中不可或缺的关键一环。回首日常生活&#xff0c;远程办公场景中的视频会议让分散各地的团队成员能够跨越地理距离的鸿沟&#xff0c;齐聚一堂共商…

oracle位运算、左移右移、标签算法等

文章目录 oracle基础函数创建bitor(按位或)函数bitnot(按位非)函数bitxor(按位异或)函数左移函数BITSHIFT()函数(实测不可用&#xff0c;废弃掉该方案)右移函数(略&#xff0c;有此场景吗?) 实际应用资质字典增删改查分别对应什么操作新增对应操作查询对应的操作修改删除(正向…

【银河麒麟高级服务器操作系统实例】tcp半链接数溢出分析及处理全过程

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://document.kylinos.cn 服务器环境以及配置 系统环境 物理机/虚拟机/云…

[文献精汇]使用PyCaret预测 Apple 股价

2024年专题 量化专题 共计 102 篇 涵盖量化框架、数据篇、风险与收益、策略篇、多因子模型、编程篇、图形篇、机器学习、Backtrader等主题&#xff0c;全方面了解量化领域知识。机器学习共计29篇 涵盖机器学习基本介绍、监督学习、集成算法、无监督学习以及机器学习实战。研报…

新一代智能工控系统网络安全合规解决方案

01.新一代智能工控系统概述 新一代智能工控系统是工业自动化的核心&#xff0c;它通过集成人工智能、工业大模型、物联网、5G等技术&#xff0c;实现生产过程的智能化管理和控制。这些系统具备实时监控、自动化优化、灵活调整等特点&#xff0c;能够提升生产效率、保证产品质量…

【简博士统计学习方法】第1章:1. 统计学习的定义与分类

自用笔记 1. 统计学习的定义与分类 1.1 统计学习的概念 统计学习&#xff08;Statistical Machine Learning&#xff09;是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。 以计算机和网络为平台&#xff1b;以数据为研究对象&#xff1b;以…

PS 解析成ES流

最近做ps 解析&#xff0c;整理了一下&#xff1a; 解析如下&#xff1a; 这里理解为&#xff0c;后面会跟着pes头&#xff0c;在长度F00D-2-0A字节以后。

Android存储方案对比(SharedPreferences 、 MMKV 、 DataStore)

简介&#xff1a;本文介绍了Android开发中常用的键值对存储方案&#xff0c;包括SharedPreferences、MMKV和DataStore&#xff0c;并且对比了它们在性能、并发处理、易用性和稳定性上的特点。通过实际代码示例&#xff0c;帮助开发者根据项目需求选择最适合的存储方案&#xff…

基于 GEE Sentinel-1 数据集提取水体

目录 1 水体提取原理 2 完整代码 3 运行结果 1 水体提取原理 水体提取是地理信息和遥感技术的关键应用之一&#xff0c;对于多个领域都具有重要的应用价值。它有助于更好地管理水资源&#xff0c;保护环境&#xff0c;减少灾害风险&#xff0c;促进可持续发展&#xff0c;以…

w~自动驾驶~合集16

我自己的原文哦~ https://blog.51cto.com/whaosoft/12765612 #SIMPL 用于自动驾驶的简单高效的多智能体运动预测基准 原标题&#xff1a;SIMPL: A Simple and Efficient Multi-agent Motion Prediction Baseline for Autonomous Driving 论文链接&#xff1a;https://ar…

外驱功率管电流型PWM控制芯片CRE6281B1

CRE6281B1 是一款外驱功率管的高度集成的电流型PWM 控制 IC&#xff0c;为高性能、低待机功率、低成本、高效率的隔离型反激式开关电源控制器。在满载时&#xff0c;CRE6281B1工作在固定频率(65kHz)模式。在负载较低时&#xff0c;CRE6281B1采用节能模式&#xff0c;实现较高的…

亚信安全2025年第1期《勒索家族和勒索事件监控报告》

本周态势快速感知 本周全球共监测到勒索事件51起&#xff0c;本周勒索事件数量降至近一年来最低&#xff0c;需注意防范。从整体上看Ransomhub依旧是影响最严重的勒索家族&#xff1b;本周Acrusmedia和Safepay也是两个活动频繁的恶意家族&#xff0c;需要注意防范。本周&#…

linux网络 | http结尾、理解长连接短链接与cookie

前言&#xff1a;本节是http章节的最后一部分&#xff0c;主要解释一些小概念。讲解到了HTTP的方法&#xff0c;表单&#xff0c; 重定向等等。 现在废话不多说&#xff0c; 开始我们的学习吧。 ps&#xff1a;本节内容都是概念&#xff0c; 知道就行&#xff0c; 友友们放心观…

韩国机场WebGIS可视化集合Google遥感影像分析

目录 前言 一、相关基础数据介绍 1、韩国的机场信息 2、空间数据准备 二、Leaflet叠加Google地图 1、叠加google地图 2、空间点的标记及展示 3、韩国机场空间分布 三、相关成果展示 1、务安国际机场 2、有同类问题的机场 四、总结 前言 12月29日8时57分左右务安国际机…

基于Django的农业管理系统

一、系统背景与意义 随着信息技术的不断发展&#xff0c;农业生产也逐渐向智能化、信息化转型。基于Django的农业管理系统正是为了满足这一需求而设计的。该系统通过集成先进的信息技术&#xff0c;旨在提升农业生产效率&#xff0c;优化资源配置&#xff0c;减少人工干预&…

后台管理系统引导功能的实现

引导是软件中经常见到的一个功能&#xff0c;无论是在后台项目还是前台或者是移动端项目中。 那么对于引导页而言&#xff0c;它是如何实现的呢&#xff1f;通常情况下引导页是通过 聚焦 的方式&#xff0c;高亮一块视图&#xff0c;然后通过文字解释的形式来告知用户该功能的作…

Yolov8训练方式以及C#中读取yolov8+onnx模型进行目标检测.NET 6.0

目录 首先你要定义v8的模型特征文件 下方是完整的模型编写函数 然后你要在控件窗体中定义应用这些方法以及函数 一、定义你的标签 二、下方是定义模块和坐标的方法 三、画框 完整推理函数代码块 效果展示 完整源码 训练其实和yolov10差不多 因为v10就是在v8的基础上做了优…