菜鸟玩算法·数据结构与算法·第2期·复杂度大O表示法

算法复杂度渐进符号(大O、Ω和θ)的个人理解 做软考习题时,碰到了这样的一道题: 关于算法复杂度渐进符号(O、Ω、θ),详细解释可参考: 【双语字幕】什么是算法复杂度渐进符号?阿布老师算法课11 这里节选总结了视频的重点内容: (1)常见函数阶数由低到高排列: (2)O(Big-Oh,大O表示法): 构造形如f(n) = c * g(n)形式的不等式。 eg: 如图,待分析式f(n)=2n+3 此时,可以构造式子2n+3n,可以保证当n≥1时,f(n)= 2n+3 ≤ 2n+3n = 5n成立 此时,c*g(n)= 5n(c为系数5,g(n)= 阅读详情

概念

    如果存在正数n和N,当n>N时,有f(n) \leq mg(n),则f(n) = O(g(n))。该描述方法主要是上篇提到的渐进复杂度的表示方法,是1894年Paul Bachmann提出的。

    下面来看一个函数举例说明:f(x) = 3x^3+3x+1,对应的表示f(x)=O(x^3)。我们反推一下公式,看是否成立:

                                                                        3x^3+3x+1 \leq mx^3

                                                                        3+\frac{3}{x^2}+\frac{1}{x^3} \leq m

      当x>N时,满足上述公式,所以f(x)的为O(x^3)大O表示。

性质

(1)如果f(n) = O(h(n)), g(n) = O(h(n)) \rightarrow f(n) + g(n) = O(h(n))

(2)传递性,f(n) = O(g(n)), g(n) = O(h(n)) \rightarrow f(n) = O(h(n))

(3)特殊的对数函数,任意的a和b(b不等于1),log_{a}n = O(log_{b}n)

          (即:对数函数都满足同样的增长特性)

(4)对于幂函数,任何正数m,n^k = O(n^{k+m})

 

说明:

    对于大O表示也是存在特殊情况的,例如f(x)=10^8x和g(x)=x^2,它们对应的表示分别为O(x)和O(x^2),如果根据大O表示法来看,O(x^2)的计算复杂度是比O(x)大的。但是根据函数来看这是不严谨的定论,当x\geq 10^8时,O(x^2)的计算复杂度是比O(x)大的。但是,我们在程序中可能很难处理这么多的数据,所以针对这种常数太大没有实际意义情况Udi Manber提出使用O(OO)符号对这类函数表示。

    O(OO)的表示法:f(n)=OO(g(n)),其中f(x)=10^8x就是这种情况f(x)=OO(x)。常数太大没有实际意义,还有根据具体情况来看。

 

更多《计算机视觉与图形学》知识,可关注下方公众号:

时间复杂度的差异测评!O(n)、O(nlogn)、O(n^2)、O(n^3)以最长子段和为例 时间复杂度的差异测评 前言: 大家都知道,判断一个算法够不够好,一个很重要的标准就是算法的时间复杂度 ,同样一个问题,不同的算法执行的时间差异可以很大!这个就是时间复杂度导致的,关于时间复杂度的定义等,本菜鸟不予说明,大家可以参考各大算法或者数据结构书籍,里面有详细的解释,今天给大家带来的是不同时间复杂度算法运行时间的差异! 测试题目: 输入一个数据n(0,1000000),然后输 阅读详情

相关推荐

Linux CentOS 8系统离线升级内核版本

CentOS 8操作系统离线场景下升级内核版本

WQwinter的博客 3237

数据结构与算法——复杂度分析

原文链接:https://jiang-hao.com/articles/2020/algorithms-algorithms-bubble-sort.html 文章目录概述时间复杂度分析大 O 复杂度表示法时间复杂度分析几种常见时间复杂度实例分析最好、最坏情况时间复杂度平均情况时间复杂度均摊时间复杂度空间复杂度分析内容小结 概述 从广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。 数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。比如,因为数组具.

Heriam的博客 1056

即梦文生视频逆向接口部署使用

有的小伙伴不知道这个地址如何填写,你可以理解是步骤3上提供的 服务器或者本地电脑IP 地址(不要写 http://127.0.0.1 或者http://localhsot ) 是 (192.168.XXX.XXX 参考)

weixin_44245188的博客 3190

算法的时间复杂度(大O表示法,其中O是个常量)

算法的时间复杂度和空间复杂度都是用大O表示法,来表示的。其中O是个常量。 常见的 排序算法的时间复杂度:                                               冒泡排序、插入排序、希尔排序、选择排序的时间复杂度是O(n^2);                                               快速排序的时间复杂度是 O(n *

拥抱变化 1万+

分享一下使用Xilinx FPGA驱动MIPI DSI LCD屏的心路历程

分享一下调试用Xilinx FPGA驱动MIPI DSI LCD屏的心路历程,看到的朋友们,可以避免继续踩坑。

haoxingheng的专栏 5017

彩票的未来:基于人工智能与大数据的创新预测模型

随着人工智能(AI)和大数据技术的迅猛发展,彩票行业正面临前所未有的变革。本文将探索如何通过结合深度学习、机器学习和数据挖掘技术,构建先进的预测模型,以提高彩票开奖结果的预测准确性。通过分析历史数据、应用现代化的计算技术,我们提出了一种创新的彩票预测软件架构,旨在推动彩票行业向着更加智能和高效的方向发展。

Sapphire521的博客 1444

【数据结构与算法】时间复杂度和空间复杂度

数据结构与算法:时间复杂度和空间复杂度,OJ题目练习

weixin_60478154的博客 1万+

2025年GESP3月认证C++五级真题解析

小 A 有 2n 件物品,小 B 和小 C 想从小 A 手上买走这些物品。对于第 i 件物品,小 B 会以 bi 的价格购买,而小 C 会以 ci 的价格购买。对于所有测试点,保证 1 <= T <= 100, 2 <= g < p <= 10^9, g, p 为整数, p 为质数。对于所有测试点,保证 1 <= n <= 10^5, 0 <= bi, ci <= 10^9, bi, ci 为整数。对于另外 50 % 的测试点,保证 n <= 100000, 0 <= bi, ci <= 10^9。

lan_in的博客 1036

时间空间复杂度(入门篇)——数据结构与算法

时间复杂度空间复杂度,基础扫盲

qq_61500888的博客 3076

《QGIS快速入门与应用基础》151:批量属性值赋值(字段计算器)

本文介绍了QGIS中字段计算器的批量属性值赋值方法,重点讲解了简单赋值(统一值和递增序列)的操作步骤与表达式应用。文章首先强调数据备份、字段类型确认等必要前提,随后详细解析字段计算器的界面功能分区和打开方式。通过具体场景示例,展示了如何为图层统一赋值固定值或生成连续编号序列,并提供了文本、数字、日期等不同字段类型的表达式模板。文中特别提醒新手优先创建新字段而非直接更新现有字段,以避免数据丢失风险,同时推荐使用$id和rownum()函数实现基础序列生成。该教程适合GIS初学者快速掌握批量属性编辑的核心技能。

LuckyHanMo的博客 491

YOLOv13必学核心:SKAttention选择性核注意力机制原理 + 实战全拆解

SKAttention的核心思想来源于人类视觉系统的一个重要特性:根据不同的视觉刺激,人眼能够自适应地调整感受野大小。SKAttention将这一生物学原理转化为深度学习中的注意力机制,通过动态选择和融合不同大小的卷积核,实现了自适应的多尺度特征提取。在人类视觉皮层中,不同的神经元具有不同大小的感受野,而且这些感受野的大小会根据视觉刺激的类型动态调整。本文将深入解析SKAttention模块的设计原理、数学基础、实现细节,以及其在YOLOv13目标检测框架中的集成应用,为读者提供全面而深入的技术理解。

FJN110的博客 97

【数据结构】什么是时间复杂度、空间复杂度?看此篇文章足矣

在数据结构中,有着众多的算法,比如查找算法,排序算法等。在查找算法中有顺序查找、折半查找、分块查找等,排序算法中有冒泡排序、快速排序、希尔排序等,而面对这么多的算法,是怎样去衡量算法的执行效率呢?而这也就是此篇文章的重点:时间复杂度和空间复杂度。

@情话 4882

SpringBoot + MyBatis-Plus 高效实现数据变更记录:从注解到通用审计方案(附源码)

*** 数据变更审计插件* 拦截增删改操作,自动记录变更日志*/@Component@Resource/*** 拦截SQL执行*/@Override/*** 数据变更审计插件* 拦截增删改操作,自动记录变更日志/*** 拦截SQL执行。

2601_94871597的博客 561

数据结构 | 【1】时间&空间复杂度

数据结构:时间&空间复杂度的总结

折枝寄北Official的博客,记录从零开始的发展,感谢相遇。 1009

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

数据结构之复杂度

一个算法的好坏我们主要从两个方面来进行定义:1,时间复杂度,2,空间复杂度 2.3,推导大O阶方法的标准 所以,根据以上的规则,上面的代码的执行次数我们用大O渐进法得到的最终结果就是 O(N^2)。示例一: 基本执行次数:2N + 10,时间复杂度O(N)。示例二: 基本执行次数:M + N,时间复杂度O(M+N)。这里的M,N都是未知的。示例三: 基本执行次数100,时间复杂度O(1)。示例四: 示例五: 示例六: 示例七: 时间复杂度 :O(2^N)示例1: 变量个数三个,end,sorted

qq_61688804的博客 843

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【数据结构】时间与空间复杂度

时间与空间复杂度的分析

malloc不出对象的博客 1021

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【数据结构】时间复杂度和空间复杂度详解(几乎最全)

时间复杂度和空间复杂度是评价算法优劣的重要指标。不同算法和数据结构对应不同复杂度,选择时需权衡。理解复杂度有助于写出高效代码,避免性能瓶颈。建议多用实例练习计算复杂度,结合代码理解。【数据结构】时间复杂度和空间复杂度(几乎最全,包含各种类型示例)讲解 – 菜鸟-创作你的创作。

wangjinjin180的博客 2431

数据结构——三分钟让你学会计算时间复杂度

本篇博客将涉及数据结构中时间复杂度的相关知识,包括什么是时间复杂度,时间复杂度的计算,时间复杂度的对比等,也正式意味着开始进入数据结构板块的学习。算法效率分析有两种:一种是时间效率,一种是空间效率。时间效率被称为时间复杂度,空间效率就是空间复杂度,时间复杂度主要衡量一个算法的运行速度,而空间复杂度主要衡量一个算法所需的额外空间。三分钟让你学会计算时间复杂度!!!

暴躁小吕的博客 3180

如何计算时间复杂度?

关于时间复杂度   算法的时间复杂度是用来描述一个算法的运行时间,时间复杂度通常 T(n) = O(f(n)) 来表示;我们用 n 来表示一个 问题的规模, T(n) 这个函数就表示算法的 时间复杂度 ;O(f(n)) 表示的是算法的 向上渐近时间复杂度 ; 至于向下渐近时间复杂度 Ω(ƒ(n)) 和平均渐进时间复杂度 Θ(ƒ(n)) ,时间复杂度一般都是采用向上渐近表示。 计算规则 1. 顺...

呆呆papa的博客 3万+

【数据结构从菜鸟到大牛】时间复杂度&&空间复杂度

🏹1.什么是数据结构 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合 比如 通讯录,输入信息的时候需要存储,而数据以什么结构存储呢? 有顺序表,链表,树,哈希表等各种结构,但是每一种结构都有各自的优点和缺点 🏹1.1考考你? 你知道数据库和数据结构的区别吗? 数据库和数据结构的本质都是存储管理数据 但是 但是!! 数据结构 :在内存中存储管理数据 内存:带电存储(断电容易丢失) 数据库 :在磁盘里存储管理数据..

K_04_10的博客 1243

菜鸟玩算法·数据结构与算法·第3期·复杂度表示法(二)

说明 上一篇讲的大O表示法是对应函数的上界,其中还有下界的定义,主要有表示法和表示法。 表示法 如果存在正数m和N,满足所有的,有,则 表示法 如果存在正数、和N,满足所有的,有,则 ...

CSS360的博客 255

O(n)的时间复杂度求中位数

O(n)的时间复杂度求中位数 O(n)中位数问题是指:在O(n)的时间复杂度内找到一个无序序列的中位数。 在开始O(n)时间复杂度求中位数之前,先手写一下快速排序。 快速排序的实现 Reference: 快速排序|菜鸟教程 白话经典算法系列之六 快速排序 快速搞定 快速排序的原理 如果想正序排序一个序列: 从序列中找到一个 基准数 。 分区:将序列中比基准数大的数字都放到基准数的右边,将序列中比基准数小的数字都放在基准数的左边。 此时,序列被分成了三部分: 左序列 + 基准数 + 右序列。 实现2的方.

Histranger_的博客 1万+

数据结构与算法学习笔记之 复杂度分析

前言:   大家都知道数据结构和英语,就如同程序员的两条腿一样;只有不断的积累,学习,拥有了健壮的“双腿”才能越走越远;在数据结构和算法的领域,不得不承认自己就是一只菜鸟;需要不断的学习;在学习过程中,经常会有一些自己的看法,和别人独特的见解;我都会一一做好笔记,以便进步; 正文:复杂度分析 一、什么是复杂度分析? 1.数据结构和算法解决是“如何让计算机更快时间、更省空...

dinghuoruo0011的博客 210

Python 数据结构与算法

列表(List):列表是Python中最常用的数据结构之一,用于存储一组有序的元素。列表使用方括号[]来定义,其中的元素可以是任意数据类型,并且可以动态增加、删除或修改。元组(Tuple):元组与列表类似,不同之处在于元组使用圆括号()来定义,一旦创建就不能被修改(即元组是不可变的)。字典(Dictionary):字典是无序的键值对集合,用大括号{}来定义,可以通过键来访问对应的值。字典的键必须是唯一的,但值可以重复。集合(Set):集合是一种无序的、不重复的数据集合,用大括号{}

weixin_44098348的博客 1607

Java【时间 / 空间复杂度】入门数据结构的第一课

数据结构预备——时间 / 空间复杂,内附例题练习噢

yzhcjl_的博客 543

浅谈数据结构与算法分析学习及如何进行算法分析

前言都说数据结构与算法分析是程序员的内功,想要理解计算机世界就不能不懂点数据结构与算法,然而这也备受争议,因为大多数的业务需求都用不上数据结构与算法,又或者说已经有封装好的库可以直接调用,例如Java中的ArrayList与LinkedList,直接调用add、remove等方法就已经可以完成插入删除等基本操作,实现业务逻辑,而无需关注其内部实现。如果说一样东西有没有用是根据用不用得上来衡量的话,那

纸上得来终觉浅 绝知此事要躬行 9314
上一篇: 刷野打怪上王者·C++篇·第27期·总结
下一篇: 菜鸟玩算法·数据结构与算法·第3期·复杂度表示法(二)
元宇宙MetaAI
博客等级 码龄10年 331粉丝 333原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值