婚纱网站建设 最开始中油六建公司官网

web/2025/9/28 7:54:17/文章来源:
婚纱网站建设 最开始,中油六建公司官网,河北邯郸做wap网站,wordpress加入图片不显示相关代码gitee自取#xff1a; C语言学习日记: 加油努力 (gitee.com) 接上期#xff1a; 学C的第三十四天【程序环境和预处理】_高高的胖子的博客-CSDN博客 1 . 算法效率 #xff08;1#xff09;. 什么是数据结构#xff1a; 数据结构(Data Structure)是计算机存储、… 相关代码gitee自取 C语言学习日记: 加油努力 (gitee.com) 接上期 学C的第三十四天【程序环境和预处理】_高高的胖子的博客-CSDN博客 1 . 算法效率 1. 什么是数据结构                 数据结构(Data Structure)是计算机存储、组织数据的方式 指相互之间存在一种或多种特定关系的数据元素的集合。                                            2. 什么是算法                  算法(Algorithm)就是定义良好的计算过程 它取一个或一组的值为输入并产生出一个或一组值作为输出。 简单来说算法就是一系列的计算步骤用来将输入数据转化成输出结果。                                            3. 算法的复杂度                       算法在编写成可执行程序后运行时需要耗费时间资源和空间(内存)资源。 因此衡量一个算法的好坏一般是从时间和空间两个维度来衡量的 即时间复杂度和空间复杂度。                        时间复杂度主要衡量一个算法的运行快慢 而空间复杂度主要衡量一个算法运行所需要的额外空间。 在计算机发展的早期计算机的存储容量很小。所以对空间复杂度很是在乎。 但是经过计算机行业的迅速发展计算机的存储容量已经达到了很高的程度。 所以我们如今已经不需要再特别关注一个算法的空间复杂度。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 . 时间复杂度 1. 时间复杂度的概念                 在计算机科学中算法的时间复杂度是一个函数它定量描述了该算法的运行时间。 一个算法执行所耗费的时间从理论上说是不能算出来的 只有你把你的程序放在机器上跑起来才能知道。 但是我们需要每个算法都上机测试吗是可以都上机测试但是这很麻烦 所以才有了时间复杂度这个分析方式。              一个算法所花费的时间与其中语句的执行次数成正比例 算法中的基本操作的执行次数为算法的时间复杂度。                         即 找到某条基本语句与问题规模N之间的数学表达式就是算出了该算法的时间复杂度。               图例Func1执行的基本操作次数                   上图得到的Func1执行的基本次数为 F(N) N^2 2*N 10 但实际我们计算时间复杂度时我们其实并不一定要计算精确的执行次数 而只需要大概执行次数那么这里我们使用大O的渐进表示法。                                            2. 大O的渐进表示法            大O符号Big O notation是用于描述函数渐进行为的数学符号。              推导大O阶方法 1、用常数1取代运行时间中的所有加法常数。 2、在修改后的运行次数函数中只保留最高阶项。 3、如果最高阶项存在且不是1则去除与这个项目相乘的常数。得到的结果就是大O阶。              使用大O的渐进表示法以后 F(N) N^2 2*N 10 第一步10 变为 1 第二步保留最高阶项 N^2 第三步最高项相乘常数为1不用去除              所以Func1的时间复杂度O(N^2) N 10             F(N) 100         N 100           F(N) 10000     N 1000         F(N) 1000000 通过上面我们会发现大O的渐进表示法去掉了那些对结果影响不大的项 简洁明了的表示出了执行次数。 大O的渐进表示法本质计算的是算法属于哪个量级。             另外有些算法的时间复杂度存在最好、平均和最坏情况 可查看下方案例四 最坏情况任意输入规模的最大运行次数(上界) 平均情况任意输入规模的期望运行次数 最好情况任意输入规模的最小运行次数(下界)                  例如在一个长度为N数组中搜索一个数据x 最坏情况N次找到 平均情况N/2次找到 最好情况1次找到 在实际操作下一般情况关注的是算法的最坏运行情况 所以数组中搜索数据时间复杂度为O(N)                                            3. 常见时间复杂度计算案例            案例一 //示例一 //计算Func2的时间复杂度 void Func2(int N) {int count 0;for (int k 0; k 2*N; k){count;}int M 10;while (M--){count;}printf(%d\n, count); } 图示                                 案例二 //示例二 //计算Func3的时间复杂度 void Func3(int N, int M) {int count 0;for (int k 0; k M; k){count;}for (int k 0; k N; k){count;}printf(%d\n, count); }图示                                 案例三 //示例三 //计算Func4的时间复杂度 void Func4(int N) {int count 0;for (int k 0; k 100; k){count;}printf(%d\n, count N); } 图示“cpu技术太强了”                                 案例四 //示例四 //计算strchr的时间复杂度 const char* strchr(const char* str, int character); //strchr库函数在str字符数组中查找一个字符 图示                                 案例五 //示例五 #include stdio.h //计算BubbleSort的时间复杂度 void BubbleSort(int* a, int n) {assert(a);for (size_t end n; end 0; --end){int exchange 0;for (size_t i 1; i end; i){if (a[i - 1] a[i]){Swap(a[i - 1], a[i]);exchange 1;}}if (exchange 0){break;}} } 图示                                 案例六 //示例六 //计算BinarySearch的时间复杂度 int BinarySearch(int* a, int n, int x) {assert(a);int begin 0;int end n - 1;// [begin, end]begin和end是左闭右闭区间因此有号while (begin end){int mid begin ((end - begin) 1);if (a[mid] x){begin mid 1;}else if (a[mid] x){end mid - 1;}else{return mid;}}return -1; } 图示                                 案例七 //示例七 //计算阶乘递归Fac的时间复杂度 long long Fac(size_t N) {if (0 N){return 1;}return Fac(N-1)*N; }图示                                 案例八 //示例八 //计算斐波那契递归Fib的时间复杂度 long long Fib(size_t N) {if (N 3){return 1;}return Fib(N - 1) Fib(N - 2); } 图示                                            4. 常见时间复杂度对比               一般算法常见的复杂度如下表 5201314O(1)常数阶3n 4O(n)线性阶3n^2 4n 5O(n^2)平方阶3log(2)n 4O(logn)对数阶2n 3nlog(2)n 14O(nlogn)nlogn阶n^3 2n^2 4n 6O(n^3)立方阶2^nO(2^n)指数阶 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 . 空间复杂度 1. 空间复杂度的概念                       空间复杂度也是一个数学表达式 是对一个算法在运行过程中额外临时占用存储空间大小的量度。                  空间复杂度不是程序占用了多少bytes的空间因为这个也没太大意义 所以空间复杂度算的是变量的个数。 空间复杂度计算规则基本跟时间复杂度类似也使用大O渐进表示法。                     注意 函数运行时所需要的栈空间(存储参数、局部变量、一些寄存器信息等) 在编译期间已经确定好了 因此空间复杂度主要通过函数在运行时候显式申请的额外空间来确定。                                            2. 常见空间复杂度计算案例             案例一 //计算BubbleSort的空间复杂度 void BubbleSort(int* a, int n) {assert(a);for (size_t end n; end 0; --end){int exchange 0;for (size_t i 1; i end; i){if (a[i - 1] a[i]){Swap(a[i-1], a[i]);exchange 1;}}if (exchange 0){break;}} }图示                         案例二 //计算Fibonacci的空间复杂度 //返回斐波那契数列的前n项 long long* Fibonacci(size_t n) {if (n0){return NULL;}long long* fibArray (long long*)malloc((n 1) * sizeof(long long));fibArray[0] 0;fibArray[1] 1;for (int i 2; i n; i){fibArray[i] fibArray[i - 1] fibArray[i - 2];}return fibArray; }图示                         案例三 //计算阶乘递归Fac的空间复杂度 long long Fac(size_t N) {if (N 0){return 1;}return Fac(N-1)*N; } 图示 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4 . 复杂度的oj练习 1. 时间复杂度练习消失的数字                     对应链接 面试题 17.04. 消失的数字 - 力扣LeetCode                题目             解决思路一使用等差数列公式               假设数组nums包含从0到n的所有整数 那么就可以使用 0N等差公式 计算出一个结果 该结果就等于 0~n的各数相加总和 再用这个结果 减去 数组中的值 结果就是消失的数字的值                图示 对应代码 int missingNumber(int* nums, int numsSize){int N numsSize;int ret N*(N1)/2;for(int i 0; i N; i){ret - nums[i];}return ret; }解决思路二异或法               先用 0 异或 完整的0~N各值 再用该异或的结果来 异或 nums数组少一个值 因为异或后相同为0相异为1 此时两对值中相同的值就会异或为0 nums少的一个值异或后就会得到该值                图示 对应代码 int missingNumber(int* nums, int numsSize){int N numsSize;int x 0; //用来保存异或后的结果for(int i 0; i N; i){x ^ i;}for(int i 0; i N; i){x ^ nums[i];}return x; }2. 空间复杂度练习轮转数组                     对应链接 189. 轮转数组 - 力扣LeetCode                 题目要求时间复杂度为O(N)空间复杂度为为O(1)             解决思路一整体右旋               将原数组分为两部分 假设需要右旋k个数字 以原数组末尾k个数字为一组剩下其他数字为一组 两组进行调换即可实现                图示 对应代码 void rotate(int* nums, int numsSize, int k){//用空间换时间int n numsSize; //数组长度int* tmp (int*)malloc(sizeof(int)*n);k % n; //确保要右旋个数小于数组大小//直接使用memcpy函数进行调换memcpy(tmp, numsn-k, sizeof(int)*k); //把后k个值移到前面// tmp : 起始位置// numsn-k : 数组nums后k个值的起始位置// sizeof(int)*k 拷贝k个int大小的数据memcpy(tmpk, nums, sizeof(int)*(n-k)); //把后k个值移到前面// tmpk : 拷贝到tmpk的位置因为上面把后k个值放在了前面// nums : 数组nums开始位置// sizeof(int)*(n-k) 拷贝(n-k)个int大小的数据//再赋给数组numsmemcpy(nums, tmp, sizeof(int)*n);//释放开辟的动态空间free(tmp); }             解决思路二逆置               将原数组的前 n-k 个数逆置 后 k 个数也逆置 最后再整体逆置即可实现                图示 对应代码 //逆置函数 void reverse(int* a, int left, int right) {while(left right){int tmp a[left];a[left] a[right];a[right] tmp;left;--right;} }void rotate(int* nums, int numsSize, int k){k % numsSize;//逆置前 n-k 个数reverse(nums, 0, numsSize-k-1);//逆置后 k 个数reverse(nums, numsSize-k, numsSize-1);//最后整体逆置reverse(nums, 0, numsSize-1); }

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

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

相关文章

邵阳红网站网站整体设计流程

YB4051H 300mA 单电池锂离子电池充电器0.1 mA 终端,45nA 电池漏电流 概述: YB4051系列设备是高度集成的 Li-lon 和 Li-Pol 线性充电器,针对便携式应用的小容量电池。它是一个完整的恒流/恒压线性充电器。不需要外部感应电阻,由于…

民族团结 网站建设平台广告推广

企业想要管理销售,可以选择CRM系统;企业想要优化业务流程,可以选择CRM系统;企业想要提高收入,可以选择CRM系统。下面来说说,CRM是什么?六种常见CRM系统类型对比。 什么是CRM? CRM是…

苏州模板网站专业设计什么是网站推广?

WebBenchmark是一款基于开源通讯组件Beetlex扩展的Webapi管理和性能测试工具,在传统工具中一般管理工具缺乏性能压测能力或有性能测试的缺少管理功能;WebBenchmark的设计目标是就管理和性能压测能力同时具备。接下来介绍一下工具的功能和使用&#xff1a…

商务网站创建方案江苏省住房和城乡建设厅政务网站

导读:在我国,出租车行业是八十年代初兴起的一项新兴行业,随着出租车的产生,计价器也就应运而生。但当时在全国没有一家企业能够生产,因而那个时期的计价器是由台湾引进。台湾是计价器的主要生产场地,目前全…

怎么做网站logo国内在线免费服务器

全世界只有3.14 % 的人关注了数据与算法之美在我的后台咨询者当中,女生向我咨询最多的问题就是:女生转行IT有什么困难?是不是很多IT企业都不要女生啊?女生的逻辑不如男生,是不是学不好编程?等等。1以上的所…

桂林网站设计wordpress 添加头像

作品展示: 背景需求: 1、以前做过一份比大小的题目 【教学类-05-01】20211018 Python VSC 大班 数字比大小(> <)_vsc比较3位数大小-CSDN博客文章浏览阅读674次。【教学类-05-01】20211018 Python VSC 大班…

艺术网站建设哈尔滨网站建设服务

1.包装类 1)包装类为基本数据类型提供了相应的引用数据类型。(基本数据类型-包装类)btye-Byte,char-Character,short-Short,float-Floatint-Integer,double-Double,long-Long,boolean-Boolean 2)通过包装类的构造器来实现吧基本数据类型包装成…

安装网站提示dir互联网开发是什么意思

redis在Windows下设置静默启动 下载windows版redis,解压cmd命令行有窗口启动(这种启动方式,这个界面就不能关闭才会生效 注册成为服务,设置成开机启动或者手动启动(静默启动)清除缓存本地清除,直接打开redis-cli.exe本地远程连接清除缓存 下载…

北京朝阳建站优化广东网页空间租赁

1.2004年,不知道大家对这个时间有没有感觉,那几年我正在读高中,韩寒的《三重门》席卷校园,同样还有郭敬明的《夏至未至》。那时候的我,还挣扎在温饱阶段,我每天吃饭的时候都想上食堂的三楼吃风味&#xff0…

开启WordPress多站点功能上海公司网站制作价格

好文推荐: 2.5万字详解23种设计模式 基于Netty搭建websocket集群实现服务器消息推送 2.5万字讲解DDD领域驱动设计 文章目录 一、延时队列定义二、应用场景三、技术实现方案:1. Redis2. Kafka3. RabbitMQ4. RocketMQ 四、Kafka延时队列背景五、Kafka延时队…

中国建设行业峰会网站建设asp网站视频教程

编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1&#xff0c…

江门网站定制多少钱店铺推广策略

response.text() 功能:Sanic 返回纯文本内容给浏览器。作为一个完整功能的web网站,一般是不会返回纯文本内容的,特殊情况下可选择使用本函数。response.text() 语法def text(body,status200, headersNone,content_type"text/plain;chars…

仿京东网站后台外贸seo营销ppt

个人主页:Lei宝啊 愿所有美好如期而遇 前言 本篇文章将会介绍,磁盘中是如何存储一个文件,磁盘中的文件是如何从磁盘中加载进内存,与进程又有怎样的关系,我们写的代码变成可执行程序执行起来时如何完成对文件的一系列…

邹城做网站移动互联网开发平台基于linux安卓

畅想未来儿童画绘画作品大全导语:未来的科技在不断发展,未来的世界每天充满了新奇。下面是小编为您整理的儿童画,希望对您有所帮助。未来的世界是个先进的地方。我们的交通工具不再是飞机、轮船和汽车,而是宇宙飞船。家里的设备是…

域名注册好了怎么做网站新手学做免费网站软件好

官网:http://element-cn.eleme.io/#/zh-CN 转载于:https://www.cnblogs.com/weibanggang/p/9995433.html

镜像站wordpress网络服务代码1001

目录 一、Vite概述 二、Vite构建Vue3工程化项目 三、ViteVue3项目目录结构 四、ViteVue3项目组件(SFC入门) 五、ViteVue3样式导入方式 六、ViteVue3响应式数据和setup语法糖 一、Vite概述 Vite是一种新型前端构建工具,能够显著提升前端开发体验;Vite结合…

天眼查河南建设网站公司wordpress调整固态链接后打不开

Python进行视频图像处理,通过串口发送给stm32,stm32接收数据,刷新OLED进行显示。 步骤: 1.按照接线图连接好硬件 2.把Keil工程的代码下载到STM32中 3.运行Python代码,通过串口把处理后的数据发送给STM32进行显示 …

网站404页面的作用武侯区建设局门户网站

目录 前言 知识储备 图像处理常用算法 算法原理 传统分割方法 1.基于阈值的分割方法

县电子政务办网站建设工作思路深圳品牌床垫有哪些

文章目录 🍀第一题🍀第二题🍀第三题🍀第四题🍀第五题 🍀第一题 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少? 这里我们使用…

校园二手网站的建设方案产品网站开发流程

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指昨日低开低走,深成指、创业板指均跌超1%,双双创出年内新低。转基因概念股逆势大涨…