美文网首页
大O标识法和时间复杂度

大O标识法和时间复杂度

作者: 小仙有毒_1991 | 来源:发表于2020-07-10 10:58 被阅读0次

度量一个程序的执行时间通常有两种方法
事后统计的方法
事前分析估算的方法 O
Ο(1)<Ο(log n)<Ο(n)<Ο(n^2)<Ο(n^3)<…<Ο(2^n)

大O表示法就是将算法的所有步骤转换为代数项,然后排除不会对问题的整体复杂度产生较大影响的较低阶常数和系数。(当常数非常大而n很小的时候并不是这样的,但是我们现在不要担心这种情况)

规律           Big-O

2                O(1)   --> 就是一个常数

2n + 10      O(n)   --> n 对整体结果会产生最大影响

5n^2           O(n^2) --> n^2 具有最大影响

O(1):如果算法的执行时间不随着问题规模n的增长而增长,及时算法中有上千条语句,其执行时间也不过是较大的常数。

explain:当你知道key(objects)或者index(arrays)时进行查找只需要一步就可以完成,所用时间就是一个常量。

O(log n):当数据增大n倍时,耗时增大log2(n)倍,即n为256倍时,耗时增大8倍。

explain:如果你知道在一个数组的哪一侧进行查找一个指定值时,你可以排除掉另外一半进而节约时间。

Ο(n):数据量的增大几倍,耗时也增大几倍。

explain:单层for循环,你必须通过遍历整个数组(或者list)来完成这一任务。单一for循环的时间复杂度通常都是线性的。此外数组方法比如indexOf的复杂度也是线性的。你不过是使用已经抽象了的循环过程。

Ο(n^2):数据量增大 n 倍时,耗时增大 n 的平方倍。(常见双层for循环)。

explain:for循环嵌套的复杂度就是二次方的,因为你在一个线性操作里执行另外一个线性操作(或者说: n*n =n² )

O(C^n): 数据量增大n倍时,耗时一个常数的n次方(非常大的数字)。

explain:指数复杂度通常出现在这种情况:你对数据了解甚少,但是你必须尝试其所有的排列或者组合。

相关文章

  • 大O标识法和时间复杂度

    度量一个程序的执行时间通常有两种方法事后统计的方法事前分析估算的方法 OΟ(1)<Ο(log n)<Ο(n)<Ο(...

  • 简单的时间复杂度计算法则

    简单算法时间复杂度计算 大O表示法 像前面用O( )来体现算法时间复杂度的记法,我们称之为大O表示法。 算法复杂度...

  • 《数据结构与算法之美》02——复杂度分析

    大O复杂度表示法 大O复杂度表示法,表示代码执行时间随数据规模增长的变化趋势,也叫作渐进时间复杂度,简称时间复杂度...

  • 排序算法

    复杂度 常用大O表示法展示算法的时间复杂度和空间复杂度。大O时间复杂度表示代码执行时间随数据规模变化的趋势。下面是...

  • 时间复杂度 BigO

    时间复杂度 BigO [大O表示法] 算法的渐进时间复杂度 T(n) = O(f(n)) T(n) -- 时间的渐...

  • 复杂度分析

    1. 大 O 复杂度表示法 时间复杂度就是算法的执行效率,也就是算法代码执行的时间; 大 O 时间复杂度实际上并不...

  • 2022-09-23

    算法过程描述 动图演示 复杂度 用大O表示法,忽略常量、低阶和常数系数。 时间复杂度为:O(n²)空间复杂度为:并...

  • 【python】二分法和选择排序法的实现

    一、大O表示法 学算法就绕不开大O表示法,大O法可以告诉我们算法的时间和空间复杂度。 我们先聊点简单的,请你从1数...

  • 数据结构和算法-时间和空间复杂度

    时间复杂度 在数据结构和算法中,有两种方法来衡量时间复杂度 事后统计法 大O复杂度表示法 事后统计法 把代码实际跑...

  • 归并排序

    平均时间复杂度:O(nlogn)最坏时间复杂度:O(nlogn)最优时间复杂度:O(nlogn) 核心思想 分治法...

网友评论

      本文标题:大O标识法和时间复杂度

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