我的编程空间,编程开发者的网络收藏夹
学习永远不晚

什么是大O符号

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

什么是大O符号

本篇内容介绍了“什么是大O符号”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

时间复杂度vs空间复杂度

大O符号用于度量时间复杂度和空间复杂度。

  • 时间复杂度:为完成整体操作而必须执行的小操作的数量。

  • 空间复杂度:运行算法中的代码所需的额外内存量——通常被称为辅助空间复杂度,也就是说它仅指代算法所占用的空间,不包括输入所占用的空间。

复杂度类型

时间复杂度可以分为几种不同的类型。下列是几种较常见类型:

  • 常数阶/O(1):无论数据集多大,始终在相同的时间或空间中执行。

  • 对数阶/O(log n):为获得给定数据,固定数据所必须增加的幂。

  • 线性阶/ O(n):复杂度与输入数据的大小直接相关。

  • 线性对数阶/ O(nlog n):对输入中的每一项执行O(log n)操作。

  • 平方阶/O(n²):性能与输入数据的平方大小成正比。

什么是大O符号

图源:Colt Steele的JavaScript算法和数据结构大师班

有助于确定时空复杂度的一般规则

这些规则是可以起作用的方向,但不保证每次都有效果。

确定时间复杂度:

  • 算术运算恒定

  • 变量赋值为常数

  • 数组(通过索引)或对象(通过键)中的访问元素是常量

  • 在循环中,复杂度是循环的长度乘以循环内发生的任何事情的复杂度。

确定空间复杂度:

  • 大多数基元是常量空间。(布尔常量,数字,未定义变量,空。)

  • 字符串需要O(n)空间,其中n是字符串的长度。

  • 引用类型通常为O(n),其中n是对象的数组长度或键数。

来看一些例子

什么是大O符号

图源:Colt Steele的JavaScript算法和数据结构大师班

至于空间复杂度,addUpToN有2个变量赋值(total和i)。当循环完成其操作时,这些变量会被重新分配,但无论输入数据集的大小如何,这些变量占用的空间都保持不变。空间复杂度将为常数阶/O(1)。

什么是大O符号

这里有3个简单的运算(乘、加、除)。不管n的大小如何,操作的数量保持不变。addUpToNAgain的时间复杂度为常数阶/O(1)。

此时只会返回一个值。输入值不会改变分配给此函数的空间。因此,空间复杂度也是线性阶/O(1)。

什么是大O符号

在这里,有一个线性阶O(n)运算嵌套在另一个O(n)运算中。当输入的n值缩放时,运行时间随之发生变动。sumEachPair的时间复杂度是平方阶/O(n²)。

回顾一下前文所述的一般规则,这个案例正好对应了其中一条:引用类型一般是O(n),其所需的空间量与输入值直接相关。空间复杂度则为线性阶/O(n)。

想分析算法的性能,可以使用大O符号帮助分析,大O符号可以加深对算法的时间和空间要求的理解。

总之,程序员要理解好所编写的代码的时空复杂度,进而确保运行时间和执行速度达到最快,同时保证代码始终保持在其运行系统的实体存储范围内,“修炼”成一个高效的程序员。

“什么是大O符号”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

什么是大O符号

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

golang中“append”的大O是什么?

一分耕耘,一分收获!既然打开了这篇文章《golang中“append”的大O是什么?》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议
golang中“append”的大O是什么?
2024-04-05

c++中::是什么符号

c++中的::符号是范围运算符,用于解决名称冲突和访问其他范围中的标识符,包括:访问全局变量:通过前缀命名空间名称来访问全局变量。访问类成员:通过前缀类名来访问类成员变量或静态成员函数。访问类外成员函数:允许从类外使用成员函数。访问模板类的
c++中::是什么符号
2024-04-26

c++中和是什么符号

bloc++k||||||||blockc++中和是什么符号在 C++ 编程语言中,和符号为 &,用于以下目的:引用传递变量:将变量作为引用传递给函数或其他代码块,允许对其进行直接修改。取地址运算符:返回变
c++中和是什么符号
2024-04-26

golang = =符号的用途是什么

本文小编为大家详细介绍“golang = =符号的用途是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“golang = =符号的用途是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。== 的用途在 Gol
2023-07-05

Python中//符号指的是什么

今天小编给大家分享一下Python中//符号指的是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。//符号是什么意思Pyt
2023-06-30

java中==符号是什么意思

java中“==”是关系运算符,检查两个操作数的值是否相等,如果相等则条件为真。 (推荐:java视频教程)1、对于基本数据类型,==表示对值是否相等进行判断,例如:int x = 3;if(x==3){//true//do something }2、
java中==符号是什么意思
2021-01-24

c++中的和是什么符号

c++kquote>在 c++ 中,加号(+)用于执行加法运算,可应用于数字、字符串和自定义数据类型:数字加法:将两个或多个数字相加。字符串连接:将两个或多个字符串连接在一起。自定义数据类型相加:重载加号后,可以相加自定义数据类型的对象。
c++中的和是什么符号
2024-04-28

html中什么是注释符号

今天就跟大家聊聊有关html中什么是注释符号,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。html是什么html的全称为超文本标记语言,它是一种标记语言,包含了一系列标签.通过这些标
2023-06-14

C#的@符号是什么意思

本篇内容主要讲解“C#的@符号是什么意思”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#的@符号是什么意思”吧!“@”符号符下两ows表研究室的火热当晨在“@”虽然并非C#正则表达式的“成员”
2023-06-17

php中@符号是什么意思

php 中的 @ 符号是错误抑制符,用于抑制错误消息或警告输出;它可以与任何表达式一起使用,包括函数调用、对象方法和赋值;何时使用:合理使用时机包括预期错误或警告时、使用不稳定的第三方库时、调试模式之外抑制错误消息时;替代方案:建议避免使用
php中@符号是什么意思
2024-04-27

sql中字符串连接符号是什么

sql 中的字符串连接符号是两个竖线(||),用于连接两个字符串,连接结果为字符串的拼接。SQL 中的字符串连接符号SQL 中用于连接字符串的符号是两个竖线(||)。这个符号表示将两个字符串连接在一起。语法字符串1 ||
sql中字符串连接符号是什么
2024-05-08

php中“==”符号的含义是什么

在php中,“==”符号是一个比较运算符,可以比较两个操作数是否相等,语法“操作数1 == 操作数2”。“==”运算符会比较、并测试左边的变量(表达式或常量)是否与右边的变量(表达式或常量)具有相同的值;它只比较变量的值,而不是数据类型。如果两个值相同,则返回true值;如果两个值不相同,则返回false值。
2023-05-14

python多行注释符号是什么

python多行注释符号是三个连续的单引号“'''”或者三个连续的双引号“"""”,用于一次性注释程序中多行的内容(包含一行),语法“'''注释内容'''”或“"""注释内容"""”。多行注释通常用来为Python文件、模块、类或者函数等添加版权或者功能描述信息,不支持嵌套。
2023-05-14

vue中dollar符号指的是什么

这篇文章主要介绍了vue中dollar符号指的是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue中dollar符号指的是什么文章都会有所收获,下面我们一起来看看吧。vue中的dollar符号是一个特殊标
2023-06-29

编程热搜

目录