算法分析 | 关于时间复杂度的知识点(1,n,log n,n*log n,n*2,n*3 的比较)

排序算法总结 目录 一、冒泡(n*n) 二、选择(n*n) 三、插入(n*n) 四、希尔排序(n*n) 五、快速排序( O(N*logN)) 六、堆排序 O(N*logN) 七、归并排序 O(N*logN) 八、基数排序(正数) 九、桶排序 十,计数排序 总结: 冒泡:在没有改进算法的情况下都是N*N,使用一个标志,一次遍历没有交换就结束(当数组是正序N) 插入:最好N(就是已经安装要... 阅读详情

在做作业的时候 

发现自己对这个知识点还是没有很清楚

现在对我百度到的博客做一下整理

     1       大部分程序的大部分指令之执行一次,或者最多几次。如果一个程序的所有指令都具有这样的性质,我们说这个程序的执行时间是常数。
   logN        如果一个程序的运行时间是对数级的,则随着N的增大程序会渐渐慢下来,如果一个程序将一个大的问题分解成一系列更小的问题,每一步都将问题的规 模缩减成几分之一 ,一般就会出现这样的运行时间函数。在我们所关心的范围内,可以认为运行时间小于一个大的常数。对数的基数会影响这个常数,但改变不会太大:当N=1000时,如果基数是10,logN等于3;如果基数是2,logN约等于10.当N=1 00 000,logN只是前值的两倍。当N时原来的两倍,logN只增长了一个常数因子:仅当从N增长到N平方时,logN才会增长到原来的两倍。
     N       如果程序的运行时间的线性的,很可能是这样的情况:对每个输入的元素都做了少量的处理。当N=1 000 000时,运行时间大概也就是这个数值;当N增长到原来的两倍时,运行时间大概也增长到原来的两倍。如果一个算法必须处理N个输入(或者产生N个输出), 那么这种情况是最优的。
 N* logN       如果某个算法将问题分解成更小的子问题,独立地解决各个子问题,最后将结果综合起来 (如归并排序,堆排序),运行时间一般就是NlogN。我们找不到一个更好的形容, 就暂且将这样的算法运行时间叫做NlogN。当N=1 000 000时,NlogN大约是20 000 000。当N增长到原来的两倍,运行时间超过原来的两倍,但超过不是太多。
    N^2       如果一个算法的运行时间是二次的,那么它一般只能用于一些规模较小的问题。这样的运行时间通常存在于需要处理每一对输入数据项的算法(在程序中很可能表现为一个嵌套循环)中,当N=1000时,运行时间是1 000 000;如果N增长到原来的两倍,则运行时间将增长到原来的四倍。
    N^3       类似的,如果一个算法需要处理输入数据项的三元组(很可能表现为三重嵌套循环),其运行时间一般就是三次的,只能用于一些规模较小的问题。当N=100时,运行时间就是1 000 000;如果N增长到原来的两倍,运行时间将会增长到原来的八倍。
    2^N        如果一个算法的运行时间是指数级的,一般它很难在实践中使用,即使这样的算法通常是对问题的直接求解。当N=20时,运行时间是1 000 000;如果增长到原来的两倍时,运行时间将是原时间的平方!

 

常见排序算法运行时间比较:

 

算法最坏情况运行时间平均情况/期望运行时间
插入算法O(n^2)O(n^2)
快速排序O(n^2)O(nlogn)【期望】
归并排序O(nlogn)O(nlogn)
堆排序O(nlogn)O(1)
希尔排序O(n^2)O(n^(3/2))
桶排序O(n^2)O(n)【平均情况】

上述表格转载自:https://blog.youkuaiyun.com/x_panda/article/details/16974709

 

时间复杂度从低到高的排序 :O(1) < O(log N) < O(N) < O(N*log N) < O(N^2) < O(N^3) < O(2^N) < O(N!)

暂时这样子~

有补充的话 再来修改 

真正的平面上最近点对的n log(n)算法 平面上一堆二维坐标点,找其中两点间的最小距离,这个 阅读详情

相关推荐

从涡流求解器到瞬态场:Maxwell 3D里无线充电仿真,选对求解器能省一半计算时间

本文深入探讨了Maxwell 3D在无线充电仿真中涡流求解器与瞬态求解器的选择策略,帮助工程师优化计算效率与精度。通过对比分析两种求解器的适用场景、性能差异及实战技巧,揭示如何根据频率特性、材料非线性和动态过程需求做出精准选择,可节省高达50%的计算时间。特别针对3D线圈模型的无线充电系统设计提供了专业建议。

weixin_26861329的博客 230

o(1), o(n), o(logn), o(nlogn)

在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度, 这里进行归纳一下它们代表的含义:这是算法的时空复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。 O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。 O(n),就代表数据量增大几倍,耗时也增大几倍。比如常见的遍历...

weixin_30823683的博客 448

GD32_ADC采样+DMA多通道扫描传输

所使用的MCU 片上集成了 12 位逐次逼近式模数转换器模块(ADC),可以采样来自于 16 个外部通道和 2 个内部通道上的模拟信号。这 18 个 ADC 采样通道都支持多种运行模式,采样转换后,转换结果可以按照最低有效位对齐或最高有效位对齐的方式保存在相应的数据寄存器中。我们主要介绍其多通道扫描转换和DMA传输功能,在多个通道轮询采集ad数据,并使用DMA分别保存各个数据值,其能大大提高ADC的工作效率。以下为ADC 模块框图:

Yin_w的博客 8159

【算法导论系列】开篇,与时间复杂度

时间复杂度以及O, Θ, Ω三个符号的详细说明及应用

dingzr2001的博客 3448

Qt之QSqlTableModel:高效数据库操作与视图绑定的实战指南

本文深入探讨了Qt框架中的QSqlTableModel组件,它作为连接数据库与Qt视图的智能中介,能极大简化数据库的增删改查操作。通过实战代码演示,详细讲解了如何快速构建可编辑的数据表格、理解并设置关键的数据编辑策略(如OnManualSubmit),以及实现数据过滤、排序等高级功能。文章还提供了性能优化、事务处理及常见避坑指南,帮助开发者高效、稳健地开发数据库驱动的桌面应用。

y4z5a6b7的博客 440

《UDS协议从入门到精通(UDS速查手册)》(完结撒花版)

专栏总目录,文中介绍了UDS协议相关的基础知识和一些术语,给出了详细介绍6大类26种服务的跳转目录。

车载系统攻城狮 9万+

关于时间复杂度:n^2,n,nlogn,n指数组长度

快排法即先对第一个元素尽心操作,找到一个位置,使得其左边都是小于-1的数,右边都为大于-1的数,方法为:1.将left设为100的位置,right设为7的位置,当左边的数大于-1时,left不变;当右边的数大于-1时,right--,小于-1时,right不变,即寻找到left大于-1和right小于-1的数,然后将其交换,即变成-1,-10,-50,100,7。然后一直循环,直到left=right时,让-1的位置和left交换,成为-50,-10,-1,100,7。一般以优化时间复杂度为最高优先级。

qq_67556396的博客 1237

2026年医疗AI的可信革命全栈实现(上)

医疗AI可信化:贝叶斯网络与向量数据库的协同架构 本文探讨2026年医疗AI发展的关键转折点——从追求生成能力转向构建可信决策系统。核心观点认为,医疗AI下一阶段的竞争焦点在于不确定性量化和错误传播约束,而非单纯的问答流畅度。研究提出以Python为开发语言、结合向量数据库与贝叶斯网络的混合架构: 技术分层 语言层(LLM):处理自然语言交互与工具调用 证据层(Milvus/Qdrant):实现可审计的临床知识检索 概率层(pgmpy/PyMC):执行贝叶斯推理与风险路由 治理层:确保权限控制与人工复核机制

AllenLV的博客 1149

数据结构与算法 —— 常用时间复杂度与空间复杂度

算法的时间复杂度 忽略常数项和低次项还有系数 时间复杂度越大,则算法执行效率越低 各种排序算法时间复杂度 一般我们讨论的时间复杂度都是最坏时间复杂度 我们可以看到冒泡,交换,选择,插入时间复杂度一样为n2所以他们的性能差不多 而基数,希尔,快速,归并,堆排序,时间复杂度为nlogn速度就要要快一些 算法的空间复杂度 一个算法在运行时占用的内存空间的度量。 在用户角度我们更考虑算法的时间复杂...

Charles Ren's Tech Blog 4714

BMS硬件设计核心:安全、精度与EMC的工程平衡

电池管理系统(BMS)是保障锂电安全运行的关键嵌入式子系统,其本质是在高精度模拟测量、实时故障响应与复杂电磁环境适应性之间达成工程平衡。原理上,BMS依赖专用监测芯片(如BQ76920)实现微秒级硬件保护,结合主控MCU(如STM32)完成策略决策与通信管理,形成‘安全协处理器+智能主控’双架构。技术价值体现在对过压/欠压/过流/温度等多维故障的毫秒级闭环处置能力,支撑SOC/SOH估算可信度与系统鲁棒性。典型应用场景涵盖电动工具、轻型电动车及储能模块等中低串数电池组。本文聚焦BMS控制板在时钟布局、电源滤

weixin_30591519的博客 70

Agent应用实践之三 - 基础:AgentScope-ReActAgent源码解析

本章通过总结AgentScope的核心类,再通过分析ReActAgent调用大模型的底层源码原理。使我们基本了解了Agent的基本原理,这个实现方式与OpenClaw使用pi-mono的Agent基础框架是一致的。了解完ReActAgent的基本原理,下一章我们会将一下SpringBoot集成方式的代码原理,这两章是我们构建后续内容的基本框架。

代码让AI扣 469

时间复杂度中的log(n)底数到底是多少?

其实这里的底数对于研究程序运行效率不重要,写代码时要考虑的是数据规模n对程序运行效率的影响,常数部分则忽略,同样的,如果不同时间复杂度的倍数关系为常数,那也可以近似认为两者为同一量级的时间复杂度。 现在来看看为什么底数具体为多少不重要? 读者只需要掌握(依稀记得)中学数学知识就够了。 假设有底数为2和3的两个对数函数,如上图。当X取N(数据规模)时,求所对应的时间复杂度得比值...

Finit的成长空间 6万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

循环排序时间复杂度解析:写入O(n)但比较O(n²),不是O(n log n)

排序算法是计算机科学的基础问题,不同算法在时间效率、空间占用和写入成本上各有取舍。时间复杂度用于衡量算法随数据规模增长的计算量变化,是评估排序算法最核心的指标之一。大多数经典排序如快速排序、归并排序平均复杂度为 O(n log n),而循环排序这类原地排序则通过减少元素写入次数来降低特定场景下的存储磨损,其比较次数却可能达到 O(n²)。这种“以比较换写入”的权衡让它在写入成本远高于读取成本的嵌入式系统、闪存存储等场景中具有独特价值。然而,技术社区常将“写入次数 O(n)”误读为整体时间复杂度 O(n lo

weixin_30745553的博客 423

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

循环排序时间复杂度深度解析:O(n log n)结论的真伪与实验验证

排序算法是计算机科学的基础,而时间复杂度则是衡量算法效率的核心指标。在众多排序方法中,循环排序(Cycle Sort)以原地排序、写入次数少为特点,在某些写入敏感场景下具有独特价值。然而,关于其时间复杂度一直存在争议:经典实现最坏情况为O(n²),而社区讨论中优化版本却可能逼近O(n log n)。要理解这一差异,需深入剖析算法原理——循环排序通过循环替换将元素直接放入最终位置,写入次数少但比较次数多。通过Python和C++实现的多规模实验,可以直观验证耗时增长趋势,区分经典实现与优化实现的复杂度差异。本

weixin_34129696的博客 352

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【软考 8T(n / 2)+n^2的时间复杂度如何计算?】

通过主定理、递归树法和递推展开法,我们分析了递归式 ( T(n) = 8T(n/2) + n^2 ) 的时间复杂度。主定理分析表明,由于 ( f(n) = n^2 ) 与 ( n^{\log_b a} = n^3 ) 的关系,符合主定理的第一种情况,得出 ( T(n) = \Theta(n^3) )。递归树法进一步验证了这一结论,通过计算每层递归的工作量和叶子节点的工作量,总时间复杂度同样为 ( \Theta(n^3) )。递推式展开法也支持这一结果。因此,该递归式的时间复杂度为 ( \boxed{\The

一起学习进步! 741

循环排序复杂度深挖:从O(n)误判到O(n log n)的完整复盘

排序算法是计算机科学的基础,而时间复杂度则是衡量算法效率的核心指标。许多开发者初学排序时,容易将“交换次数少”与“整体复杂度低”混为一谈。循环排序作为原地排序的一种,以减少写入次数为设计目标,其理论写入复杂度为O(n),但整体时间复杂度却取决于“定位元素最终位置”的开销。标准实现中,定位通过线性扫描完成,每一轮都需要遍历剩余区间,导致总复杂度达到O(n²);即便采用二分查找优化定位,仍需构建有序副本并执行n次O(log n)查询,最终整体复杂度依然为O(n log n)。本文从一次技术论坛的争议出发,详细剖

weixin_34348805的博客 485

时间复杂度

算法复杂度概念

my_air的博客 791

算法的时间复杂度示例

本文是学习数据结构的笔记。 【效果图】 【代码】 # example.py # 算法时间复杂度示例 def func_01(n): ''' 时间复杂度O(Log(Log(N))) ''' import math i = n count = 0 while i > 1: i = rou...

derek881122的博客 256

递归算法时间复杂度

递归算法时间复杂度分析 等比数列和公式: Sn=a1(1−qn)1−q Sn = \frac{a_1(1-q^n)}{1-q} Sn=1−qa1​(1−qn)​ Sn=a1−anq1−q Sn = \frac {a_1-a_nq}{1-q} Sn=1−qa1​−an​q​ Sn=qan−a1q−1 Sn = \frac{qa_n - a_1}{q-1} Sn=q−1qan​−a1​​ exa...

堡主Q的博客 1510

计算时间复杂度

本文系统讲解了时间复杂度的核心概念与分析方法。首先阐述了时间复杂度的定义,即衡量算法执行时间随输入规模增长的趋势,并详细介绍了计算时间复杂度的三个步骤:定位核心操作、确定执行数量级、用大O表示法表示。文章通过Java代码示例分析了常见时间复杂度,包括O(1)、O(n)、O(n²)和O(logn)等,并比较了不同复杂度的性能差异。最后强调掌握时间复杂度分析对算法设计和优化的关键作用,建议通过实践练习将理论转化为实际能力,为编程中的性能优化提供基础方法论。

ywl470812087的博客 313

循环排序原理与复杂度真相:从O(n²)到O(n log n)的深度解析

排序算法是计算机科学中最基础也最常被讨论的主题之一,复杂度分析往往决定了算法在实际场景中的适用边界。基于比较的排序存在 Ω(n log n) 的理论下界,然而不同实现会在时间、写操作次数和空间占用之间做出差异化取舍。循环排序(Cycle Sort)作为一种原地且不稳定的排序算法,以极少的写操作见长,特别适合 EEPROM、Flash 等写入寿命有限的存储介质。经典实现的定位步骤采用线性扫描,时间复杂度为 O(n²);但若借助平衡树等辅助结构优化定位,则可降至 O(n log n),这也是论坛中“循环排序与快

weixin_34228387的博客 286

斐波那契数列时间复杂度:从O(2^n)到O(log n)的五种写法

时间复杂度是算法分析的基础概念,用来描述输入规模增长时程序执行代价的变化。递归树通过展开调用过程给出直观上界,主定理处理分治递推,特征方程则能精确求解线性递推;记忆化、动态规划、矩阵快速幂和倍增法体现了状态复用、线性变换与二分幂的工程优化思路。以斐波那契数列为例,朴素递归常被写作 O(2^n),更紧的上界是 Θ(φ^n),加入缓存可降到 O(n),滚动迭代保持 O(1) 空间,矩阵快速幂和倍增法可做到 O(log n)。这些复杂度分析工具还能迁移到排序算法、大数取模、缓存与容量规划等场景。围绕斐波那契数列这

weixin_33895695的博客 401

【算法-时间复杂度】时间复杂度计算

本文系统梳理了CSP-J竞赛中时间复杂度分析的要点:1. 核心概念:通过大O表示法描述算法执行次数随问题规模n的增长趋势,涵盖常见复杂度如O(1)、O(logn)、O(n)等;2. 计算方法:采用三步法(找基本操作、计算执行次数、取最高阶项)和主定理;3. 题型分类:详细解析16类典型题目,包括单层/多层循环、递归、条件终止等场景的时间复杂度计算;4. 实战速查:提供排序、查找、图论算法的复杂度对照表,总结循环和递归类问题的分析模式。强调通过理解循环执行次数的数学本质(等差数列、指数增长)来灵活解题,而非死

万法若空 357

算法时间复杂度大o分析

1.2 算法分析: 分为:事后统计法与事前分析估算法。 当然,第一种需要执行程序。而且存在着其他的因素来干扰结果。(与硬件有关) 所以采用事前分析评估法来分析算法的效率。 1.2.1算法时间复杂度分析: 算法是由控制结构(顺序,分支,循环3种)和原操作(固有数据类型的操作)构成。 算法的的运行时间取决于两者的综合效果。o 设n为算法中的问题规模,通常用大O、大Ω或 等三种渐进符号表示算法的执...

cilicilico的博客 2384
上一篇: 2013长春网络赛 D 大数+gcd
下一篇: 春游1.0 | 湖南多校赛20190310 (划水记)
OneLine_
博客等级 码龄9年 48粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值