开发手册 欢迎您!
软件开发者资料库

数据结构 - 渐近分析

数据结构渐近分析 - 使用c,C ++和Java学习数据结构和算法,从简单和简单的步骤开始,从基本到高级概念,包括概述,环境设置,算法,渐近分析,贪婪算法,分而治之,动态编程,数据结构,数组,链接列表,双链表,循环列表,堆栈,解析表达式,队列,优先级队列,线性,二进制,插值搜索,树,树遍历,二进制搜索树,B +,AVL,跨越,河内塔,哈希表,堆,图,深度,广度优先遍历,搜索技术,排序技术,排序算法,泡沫,合并排序算法,插入,选择,壳,快速排序,递归,斐波那契系列。

算法的渐近分析是指定义其运行时性能的数学边界/框架.使用渐近分析,我们可以很好地得出算法的最佳情况,平均情况和最坏情况.

渐近分析是输入约束,即,如果算法没有输入,结论是在一个恒定的时间内工作.除了"输入"之外,所有其他因素都被认为是常数.

渐近分析是指以数学计算单位计算任何操作的运行时间.例如,一个操作的运行时间计算为 f (n),并且可以用于另一个操作,它被计算为 g (n 2 ).这意味着第一次操作运行时间将随着 n 的增加而线性增加,并且当 n 增加时,第二次操作的运行时间将呈指数增加.同样,如果 n 非常小,两个操作的运行时间几乎相同.

通常,算法所需的时间属于三种类型 :

  • 最佳案例 : 程序执行所需的最短时间.

  • 平均情况 : 程序执行所需的平均时间.

  • 最坏情况 : 程序执行所需的最长时间.

渐近符号

以下是常用的渐近符号计算算法的运行时间复杂度.

  • O符号

  • ω符号

  • Θ符号

  1. 渐近紧确界记号:Θ(big-theta)

  2. 渐近上界记号 :O(big-oh)

  3. 渐近下界记号 :Ω(big-omege)

  4. 非渐近紧确上界:o(小-oh)

  5. 非渐近紧确下界:ω(小-omege)

  6. 渐近记号Θ、Ο、o、Ω、ω关系

Big Oh表示法,O

符号和O(n)是正式的表达方式算法运行时间的上限.它测量最坏情况下的时间复杂度或算法可能需要花费的最长时间.

Big O表示法

例如,对于函数 f (n)

O(f(n)) = { g(n) : there exists c > 0 and n0 such that f(n); c.g(n) for all n > n0. }


Omega Notation,O

符号和O(n)是表达低级的正式方式算法运行时间的界限.它衡量最佳案例时间复杂度或算法可能需要完成的最佳时间.

Omega Notation

例如,对于函数 f (n)

O(f(n)); { g(n) : there exists c > 0 and n0 such that g(n); c.f(n) for all n > n0. }


Theta Notation,θ

符号θ(n)是表达两者的正式方式算术运行时间的下限和上限.它表示如下 :

Theta Notation

 Θ(f(n)) = { g(n) if and only if g(n) = O(f(n)) and g(n) = O(f(n)) fo > n0. } }


常见渐近符号

以下是一些常见渐近符号的列表 :

constant:O(1)
logarithmic:O(log n)
linear:O(n)
n log n:O(n log n)
quadratic:O(n 2 )
cubic:O(n 3 )
polynomial:n O(1)
exponential:2 O(n)