时间复杂度与空间复杂度

14、方法论 - 自顶向下与自底向上的结合 本文探讨了如何将自顶向下的规范驱动方法与自底向上的组件构建方法相结合,以形成更加全面的编程理论。通过引入代数法则,简化逻辑关系、提高代码可读性并支持形式化验证,结合实际案例(如智能家居控制系统)展示了如何在设计和实现阶段确保系统的正确性和可靠性。文章还讨论了工具支持的重要性,并提出了未来发展的方向。 阅读详情

近期我的一个学弟参加了一部分面试, 说是经常会被问到有关算法的时间复杂度问题,虽然我对于算法也是一般的水平,但是我写了这样一篇类似于介绍或者说是总结类的东西给他,顺便自己也温习一下,也就顺带着发在这里了,大神请无视,如有错误,请不吝指正,不胜感激。转载请注明出处。

时间复杂度

把算法程序中的每一步看做一个基本的计量单位,那么一个算法的执行时间就可以看做解决一个问题所需要的总步数。由于算法的执行过程又各不相同,所以每一步(计量单位)怎麽去选择就成为一个问题。

    T(n) = n  1, 当数据的规模越来越大时,T(n)函数中的某一部分掩盖了其他部分对函数的影响。

数量级 函数用来描述当规模n增加时,T(n)函数中增长最快的的部分,这个数量级函数我们一般用大O表示,记做 O(f(n0))。

    有时算法的运行时间,不仅取决于问答题规模的大小,还取决于具体数据:这样的算法,我们将它的执行情况分为 最有情况、最坏情况、平均情况。

最好情况:某个特定的数据集能让算法的执行情况极好。

最坏情况:另一个不同的数据会让算法的执行情况变得极差

平均情况:大多数数据介于两种极端情况之间。

最坏情况提供了一种保证,这个保证运行时间将不会在坏了,所以通常我们说的时间复杂度都是最坏情况下的时间复杂度。

O(1) <  O(logn)  < O(n)  < O(nlogn)  < O(n²)  < O(n³)  < O(2ⁿ)

 

对数函数: cnt = 1 

                while  cnt < n :

                    cnt *= 2  #看成是cnt乘以多少个2以后才能大于等于n, 2的x次方等于n,  x = ㏒n

 

a= 1

b = 2 

c = 3       #执行次数3

 

 

for i in range(n):

    for j  in range(n):

        x = i * i 

        y = j * j 

        z = i * j             #执行次数3n²

 

for k in range(n):

    u = a*k + b 

    v = c*c              #执行次数2n

 

d = 4      #执行次数1

 

T(n) = 3 + 3n² + 2n + 1 = 3n² + 2n + 4

看到此算法以n²作为主导,所以当n 增大时,这片代码的数量级就是O(n²)

 

空间复杂度

该算法所耗费的存储空间 ,计算公式 S(n) = O(f(n)) 其中n为数据的规模,f(n)在这里指的是n所占存储空间的函数。

巧妙解决网页弹窗重复出现问题 本文探讨了网页弹窗关闭后刷新重现的问题及解决方案。通过分析原生JavaScript实现的弹窗代码存在的缺陷,提出了使用jQuery改进的方法。关键点包括:利用event.preventDefault()阻止默认行为避免刷新,采用jQuery的hide("slow")方法实现优雅的关闭动画,确保关闭状态持久化。改进后的方案既解决了弹窗重复出现的问题,又提升了用户体验,为网页弹窗交互提供了更优的实现方式。文中提供了完整的HTML、CSS和JavaScript代码示例,便于开发者直接应用。 阅读详情

相关推荐

Android Studio运行报错: failed to load include path ……\platforms\android-35\android.jar的最细解决方案

【代码】Android Studio运行报错: failed to load include path ……\platforms\android-35\android.jar的最细解决方案。

2401_86789230的博客 2万+

时间复杂度与空间复杂度总结

Agenda:什么是时间复杂度? 算法的执行效率:算法的执行时间与算法的输入值之间的关系 例如: def test(num): total = 0 for i in range(num): total += i return total 时间复杂度就只看这个for 循环 用大O表示法就是O(n) 常见时间复杂度案例分析 O(1):表示我的算法执行时间和我的nums无关(没有for和while循环) def O1(num): i = num .

m0_53292725的博客 6608

408王道计算机组成原理强化——指令系统及大题解构

1.大纲要求 2.x86

JiangNan_1002的博客 8511

关于时间复杂度和空间复杂度的问题,常见时间复杂度

一. 如何衡量一个算法的好坏? 1.这个算法必须是可以实现的并执行无误的 2.这个算法是友好的,不装逼的,是让人能看懂的 3.这个算法时间复杂度和空间复杂度是可观的.(越小越好) 二. 什么是时间复杂度? 在计算机科学中,算法的时间复杂度是一个函数,它定量的描述了该算法的运行时间. 通俗的讲,一个算法所花费的时间与其中语句的执行次数成正比,算法中的基本操作的执行次数,为算法的时间复杂度 三. 时间...

weixin_44077227的博客 924

VS Code + Codex 在 WSL 中使用的正确姿势

Codex 登录只能在本地完成。文件仍可通过 UNC 路径访问 WSL → 本地 Codex 就能照常工作。避免在 WSL 内重复安装/登录 Codex 扩展。

yangguangwuyue的博客 9822

【QGIS】利用“创建网格”功能实现区域等距分割与坐标转换实战

本文详细介绍了如何在QGIS中使用“创建网格”工具实现区域等距分割。通过实战演示,将北京市行政区划切割为150米正方形网格,并重点讲解了关键步骤:选择投影坐标系EPSG:3857以确保网格尺寸精确,以及将结果转换为常用的WGS84经纬度坐标。文章还涵盖了进阶技巧与常见问题解决方案,帮助用户高效完成空间网格化分析任务。

weixin_29232507的博客 95

算法面试中:时间复杂度和空间复杂度是什么?

时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。(算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度 在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度。这里进行归纳一下它们代表的含义:这是算法的时空复杂度的表示...

qq_31459039的博客 4408

阿里云CDN HTTPS 证书配置流程

可以使用HTTPS方式访问资源,如果浏览器中URL旁边出现锁的HTTPS标识,表示HTTPS安全加速已生效。: 证书配置完成后,需要留意证书过期时间并在证书过期前手动配置新的证书。注意 ⚠️ 一定是需要复制 以下标识之间的内容。如果已在阿里云数字证书管理服务中购买了证书,请选择。,该证书将在阿里云数字证书管理服务中保存。如果使用第三方服务商签发的证书,请选择。第四步,在指定域名的左侧导航栏,单击。第二步,在左侧导航栏,单击。开关,并配置证书相关参数。页面,找到目标域名,单击。中选择已购买的证书。

w风雨无阻w的专栏 2208

排序算法--时间空间复杂度和稳定性

1.常见排序算法和要求 常考排序算法:冒泡排序、快速排序、归并排序、堆排序等 要求:能独立实现代码(手写),能够分析时间空间复杂度 2.常用排序算法的时间空间复杂度 注释:n*log2n 是 n 乘以 log 以 2 为底 n 的对数,也可以简写成nlogn。默认情况下2可以去掉。 平均时间复杂度:冒泡、选择、插入都不是分支法平均时...

晓康的博客 1278

采用离散模型搭建永磁同步电机控制系统

永磁同步电机发电系统分为控制器和发电机,通过simulink仿真软件进行发电系统的离散系统仿真。离散搭建仿真,可以更方便的自动代码生成。通过实践经验离散模块搭建,更能加深对整个控制系统的理解。离散系统在矢量控制中经常涉及到上个开关周期的角度,电压,或者预测下个周期的角度,电流,一般都是通过延时模块实现。PWM比较值寄存器被改写后都是使能了预装载,采样后触发计算到比较值生效可以延时0.5个开关周期Ts,也可以延时1个开关周期Ts,可以通过离散系统进行仿真,大大缩短开发周期。

f1072239934的博客 2862

前端开发 - 完美解决video.js和flv.js视频同时播放数量限制的问题,即浏览器针对同一域名的请求限制问题(解决flv.js/video.js在页面播放最多不超过6个问题、浏览器并发请求限制数

flv.js,video.js,vue,reactive,uniapp,前端开发,flv视频同时播放有限制怎么办,浏览器限制多个视频同时播放怎么办,使用flv.js在前端播放,最多只能播放6个视频,突破浏览器域名并发限制,如何解决flvjs与videojs视频播放同时播放数量限制,video.js 一个页面同时播放多个视频的实例代码,解决网页视频最大只能播放6路的问题,浏览器只能播放6路http-flv流的解决方法,一个浏览器播放5个或者6个flv的视频就不能播放了,video.js 无法在页面同时播放多个

✅ 精选推荐文章 4994

时间复杂度和空间复杂度(超详细)

文章目录算法的时间复杂度和空间复杂度复杂度的分析一. 时间维度事后统计法事前分析估算的方法时间复杂度(1)时间频度(2)时间复杂度大O符号表示法常见的时间复杂度量级常数阶O(1)线性阶O(n)对数阶O(logN)线性对数阶O(nlogN)平方阶O(n^2^)立方阶O(n³)、K次方阶O(n^k)二、空间维度空间复杂度O(1)空间复杂度O(n) 算法的时间复杂度和空间复杂度 首先我们先了解什么是算法,算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。但是对于同一个问题,我们去使用不同的算法,

霜迟的博客 9万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

什么是时间复杂度与空间复杂度

目录算法效率时间复杂度概念大O的线性表示法时间复杂度举例空间复杂度空间复杂度的定义空间复杂度举例 时间复杂度与空间复杂度是用来分析一个算法的效率的。 算法效率 算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已

qq_45967533的博客 3万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

算法的时间复杂度和空间复杂度

算法的时间复杂度和空间复杂度

l_shadow_m的博客 4990

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

时间复杂度与空间复杂度详解 —— 如何计算 + 如何表示

文章目录算法效率大O的渐进表示法时间复杂度空间复杂度 算法效率 算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间。在计算机发展的早期,计算机的存储容量很小,所以对空间复杂度很是在乎。但是随着计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。这就是为什么我们大多时候听到的是时间复杂度,而很少听到空

2021dragon的博客 2万+

时间复杂度和空间复杂度计算

时间复杂度和空间复杂度计算方法 大O阶方法

m0_58761900的博客 5336

时间复杂度和空间复杂度详解

时间复杂度和空间复杂度详解 目录1.算法效率2.时间复杂度3.空间复杂度 1.算法效率 算法效率分析分为两种:第一种是时间效率,第二种是空间效率。时间效率被称为时间复杂度,而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间,在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很是在乎。但是经过计算机 行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。 2.时间复杂度 1.时间复杂

qq_49613557的博客 1万+

时间复杂度和空间复杂度

时间复杂度 同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。 计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,它考察当输入值大...

weixin_30535843的博客 5187

时间复杂度—空间复杂度

时间复杂度与空间复杂度

2302_80185777的博客 1627

时间复杂度、空间复杂度详解

时间复杂度,空间复杂度详解

2401_89513261的博客 1406

什么是时间复杂度和空间复杂度

先简要介绍一下: 算法复杂度分为时间复杂度和空间复杂度。其作用:时间复杂度是指执行这个算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。时间和空间(即寄存器)都是计算机资源的重要体现,而算法的复杂性就是体现在运行该算法时的计算机所需的资源多少。 时间复杂度: 1:算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好地反映出算法的优劣与否; 2

leikun153的博客 3万+
上一篇: Java NIO系列-总结(Buffer 、Channel、Selector)
下一篇: 链表实例link
heary29
博客等级 码龄12年 37粉丝 85原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值