美文网首页
算法复杂度

算法复杂度

作者: Ginta | 来源:发表于2018-07-07 19:22 被阅读0次

时间复杂度

算法执行时间的这一变化趋势可表示为输入规模的乙肝函数,称作该算法的时间复杂度(time complexity)。特定算法处理规模为n的问题所需的时间可记作T(n)

渐进复杂度

在评价算法效率时,小规模问题所需的处理时间本来就相对更少,所以此时不同算法的效率差异并不明显;而在处理大规模的问题时,效率的些许差异都将对实际执行效果产生巨大的影响。这种着眼长远、更为注重时间复杂度的总体变化趋势和增长速度的策略与方法,即所谓的渐进分析

大O记号

若存在正的常数c和函数f(n),使得对任何 n >> 2 都有 T(n) ≤ c·f(n)
则可认为在n足够大之后,f(n)给出了t(n)增长速度的一个渐进上界。此时,记之为:
T(n) = O(f(n))
大O记号有以下性质:
(1)对于任一常数c>0, 有O(f(n)) = O(c·f(n))
(2)对于任意常数a>b>0,有(na + nb) = O(na)
前一性质意味着,在大O记号的意义下,函数各项正的常系数可以忽略并等同于1。后一性质意味着,多项式中的低次项均可忽略,只需保留最高次项。
在冒泡排序中,每一轮内循环,需要扫描和比较 n-1 对元素,最多需要交换 n-1 对元素,所以每一轮内循环最多需要执行2(n-1)次基本操作。外循环最多执行n-1论。因此总共执行的基本操作不超过2(n-1)2次,则有
T(n) = O(2(n-1)2)
根据大O记号的性质,进一步简化整理为:
T(n) = O(2n2-4n+2) = O(2n2) = O(n2)。

相关文章

  • 算法相关

    算法复杂度相关概念:漫画:什么是时间复杂度?算法的时间复杂度和空间复杂度详解算法题库:力扣 一、排序算法 排序算法...

  • 算法基础知识

    算法的复杂度 算法的复杂度: 算法的时间复杂度和空间复杂度合称为算法的复杂度,一般不特别说明,讨论的时间复杂度均是...

  • 一位算法工程师的自我修养

    数据结构与算法 基本算法思想动态规划贪心算法回溯算法分治算法枚举算法 算法基础 时间复杂度 空间复杂度 最大复杂度...

  • 算法

    重拾算法:算法效率分析(一)(空间复杂度和时间复杂度) 详解算法的各种复杂度的差别有多大(带图) 算法复杂度 选择...

  • 算法复杂度

    算法的复杂度是以什么来度量的? 算法的复杂度是以时间复杂度和空间复杂度来计算的。 ①算法的时间复杂度 ...

  • 算法复杂度

    算法复杂度 算法复杂度的目的:分析代码执行的时间成本。我们从五个方面来介绍算法复杂度:时间复杂度、时间复杂度分类、...

  • 全网最好的数据结构学习文章合集系列之空间复杂度

    二、空间复杂度 算法概念 及 复杂度 简单的LRU Cache设计与实现 js算法初窥07(算法复杂度) 算法的时...

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

    1. 算法的复杂度: 算法的复杂度分为时间复杂度和空间复杂度。时间复杂度,是衡量算法执行时间的长度;空间复杂度,是...

  • 时间和空间复杂度

    算法复杂度 算法复杂度分为和。 时间复杂度是指执行算法所需要的计算工作量。 空间复杂度是指执行这个算法所需要的内存...

  • 算法的复杂度

    算法复杂度分为时间复杂度和空间复杂度。时间复杂度是指执行算法所需要的计算工作量,而空间复杂度是指执行这个算法所需要...

网友评论

      本文标题:算法复杂度

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