美文网首页收藏
【大O表示法】常见的大O表示法有哪些?

【大O表示法】常见的大O表示法有哪些?

作者: Bogon | 来源:发表于2022-05-03 03:18 被阅读0次

两个概念

时间复杂度:估算程序执行的次数

空间复杂度:估算程序所占用的存储空间

我们在描述算法复杂度时,常用O(1), O(n), O(logn), O(n logn)等表示对应算法的时间复杂度,是算法的时空复杂度的表示。

它不仅仅用于表示时间复杂度,也用于表示空间复杂度。

这种表示法称之为大O表示法

大O表示法是算法的一种特殊的表示法,指出了算法的速度有多快,它指出了算法运行时间的增速

需要注意的是大O表示法指的并非以秒为单位的速度,主要可以用来表示时间复杂度和空间复杂度。

简单的说大O表示法仅仅只是定义当数量越多时算法运行时间的增速,增速越慢,即代表算法越快。

时间复杂度

O(1)

O(1):是最低的时间复杂度,表示算法的速度和数量无关,不论数量是多少,算法的速度始终不变,也就是耗时/耗空间与输入数据大小无关,无论输入数据增大多少倍,耗时/耗空间都不变。 

哈希算法就是典型的O(1)时间复杂度,无论数据规模多大,都可以在一次计算后找到目标(不考虑冲突的话)。

O(n)

O(n):也叫线性时间,表示算法的速度和数量增加呈现线性增长。

典型算法有:简单查找。

即在n个数中轮询查找a所处的位置,当n的数量+1时算法查找的次数也+1。

O(log n)

O(log n):也叫对数时间

典型算法有:二分查找法

即当数量每扩大两倍,查询次数仅仅需要+1次,是一种随着数量越多,算法耗时增速越慢的算法。

O(n²)

典型算法有:选择排序、冒泡排序,是一种速度较慢的排序法。

O(n * log n)

典型算法有:快速排序法,是一种速度较快的排序法。

O(n!)

是一种非常慢的算法

即当数量为n时,查询算法耗时为a时,当数量+1时查询算法将耗时a*(n+1),当数量较多时耗时将变得非常大。

X 数据规模

Y 执行的时间复杂度

注意,大 O 表示法只是一种估算,当数据量大的时候才有用。

大部分情况下你用直觉就可以知道一个算法的大 O 表示法。

比如说,如果你的代码用一个循环遍历你输入的每个元素,那么这个算法就是O(n)

如果是循环套循环,那就是O(n^2)。如果 3 个循环套在一起就是O(n^3),以此类推。

参考 

函数图像绘制工具

https://zh.numberempire.com/graphingcalculator.php

常见的大O表示法有哪些?时间复杂度是什么?

https://www.bilibili.com/video/BV1DY4y1H7DG

算法刷题网站

https://leetcode.com

https://leetcode-cn.com

相关文章

  • 【大O表示法】常见的大O表示法有哪些?

    两个概念 时间复杂度:估算程序执行的次数 空间复杂度:估算程序所占用的存储空间 我们在描述算法复杂度时,常用O(1...

  • 大O表示法

    讨论算法必提到O(),不太懂,尝试理解一下。 大O表示法 描述算法的性能和复杂度。常用O表示。一般考虑为cpu时间...

  • 大O表示法

    算法的速度指的并非时间,而是操作数的增速。 谈论算法的速度时,我们说的是随着输入的增加,其运行时间将以什么样的速度...

  • 大O表示法

    大O表示法 是一种特殊的表示法,指出了算法的速度有多快。大O表示法指出了算法有多快。例如,假设列表包含n 个元素。...

  • 大O表示法

    时间复杂度 衡量一个算法可以从占用的空间和时间来评价其是否是一个更好的算法。这里主要从时间方面衡量。时间复杂度,可...

  • 大 O 表示法

    大 O 表示法是一种特殊的表示法,指出了算法的速度有多快。 在我们的日常工作中,基本都是使用其他人编写好的算法,基...

  • 大O表示法

    概念 一般用大O表示法来描述复杂度,它表示的是数据规模n 对应的复杂度。 举个例子: 解析: O(1)O(1)表示...

  • 大O表示法

    一、简介 表示时间的大O符号,是用来描述算法效率的语言和度量单位。大O表示法分析了算法的运行时间如何随列表的增长而...

  • 算法复杂度

    一、大O表示法 算法的时间复杂度通常用大O符号表述 大O表示法 : ,n为算法所需要执行的操作数 该表示法的操作数...

  • 算法学习——复杂度

    一、大O表示法(Big O) 一般用大 O 表示法来描述复杂度,它表示的是数据规模 n 对应的复杂度。 忽略常数、...

网友评论

    本文标题:【大O表示法】常见的大O表示法有哪些?

    本文链接:https://www.haomeiwen.com/subject/gycpyrtx.html