大O表示法
2012-06-04 11:23
316 查看
大O表示法:称一个函数g(n)是O(f(n)),当且仅当存在常数c>0和n0>=1,对一切n>n0均有|g(n)|& lt;=c|f(n)|成立,也称函数g(n)以f(n)为界或者称g(n)囿于f(n)。记作g(n)=O(f(n))。 定义:如果一个问题的规模是n,解这一问题的某一算法所需要的时间为T(n),它是n的某一函数。T(n)称为这一算法的“时间复杂度”。当输入量n逐渐 加大时,时间复杂度的极限情形称为算法的“渐近时间复杂度”。
渐进分析法最常用的表示方法是用于描述函数渐近行为的数学符号,更确切地说,它是用另一个(通常更简单的)函数来描述一个函数数量级的渐近上界。大O符号是由德国数论学家保罗·巴赫曼(Paul Bachmann)在其1892年的著作《解析数论》(Analytische Zahlentheorie)首先引入的。 我们常用大O表示法表示时间复杂度,注意它是某一个算法的时间复杂度。大O表示只是说有上界, 由定义如果f(n)=O(n),那显然成立f(n)=O(n^2),它给你一个上界,但并不是上确界,但人们在表示的时候一般都习惯表示前者。此外,一个 问题本身也有它的复杂度,如果某个算法的复杂度到达了这个问题复杂度的下界,那就称这样的算法是最佳算法。
当问题规模即要处理的数据增长时, 基本操作要重复执行的次数必定也会增长, 那么我们关心地是这个执行次数以什么样的数量级增长。所谓数量级可以理解为增长率。这个所谓的数量级就称为算法的渐近时间复杂度(asymptotic time complexity), 简称为时间复杂度。如何分析这个数量级呢? 由于基本操作的执行次数是问题规模n 的一个函数T(n), 所以问题就是我们要确定这个函数T(n)是什么, 然后分析它的数量级, 拥有相同数量级的函数 f(n) 的集合表示为 O(f(n)), O是数量级的标记。如果T(n)的数量级和f(n)相同。
渐进分析法最常用的表示方法是用于描述函数渐近行为的数学符号,更确切地说,它是用另一个(通常更简单的)函数来描述一个函数数量级的渐近上界。大O符号是由德国数论学家保罗·巴赫曼(Paul Bachmann)在其1892年的著作《解析数论》(Analytische Zahlentheorie)首先引入的。 我们常用大O表示法表示时间复杂度,注意它是某一个算法的时间复杂度。大O表示只是说有上界, 由定义如果f(n)=O(n),那显然成立f(n)=O(n^2),它给你一个上界,但并不是上确界,但人们在表示的时候一般都习惯表示前者。此外,一个 问题本身也有它的复杂度,如果某个算法的复杂度到达了这个问题复杂度的下界,那就称这样的算法是最佳算法。
当问题规模即要处理的数据增长时, 基本操作要重复执行的次数必定也会增长, 那么我们关心地是这个执行次数以什么样的数量级增长。所谓数量级可以理解为增长率。这个所谓的数量级就称为算法的渐近时间复杂度(asymptotic time complexity), 简称为时间复杂度。如何分析这个数量级呢? 由于基本操作的执行次数是问题规模n 的一个函数T(n), 所以问题就是我们要确定这个函数T(n)是什么, 然后分析它的数量级, 拥有相同数量级的函数 f(n) 的集合表示为 O(f(n)), O是数量级的标记。如果T(n)的数量级和f(n)相同。
相关文章推荐
- 算法的时间复杂度(大O表示法)
- 关于大O表示法和小O表示法
- 大O表示法
- 算法概念:大O表示法/小o表示法/Ω/Θ
- 《数据结构与算法》学习笔记4 存储对象的数组和大O表示法
- (译)算法之美(3)--大O表示法
- 大O表示法
- 大O表示法
- 通过简单排序理解大O表示法
- 大O表示法
- 算法初探——大O表示法
- 大O表示法
- (四)存储对象的数组和大O表示法
- 大O表示法的算法复杂度列表
- 大O表示法_时间复杂度
- 算法的时间复杂度(大O表示法)
- 2.1 数学基础、大O表示法、洛必达法则相对增长率、T(N) = O( f(N) )、Ω( g(N) )、Ω( h(N) )、o( p(N) )
- 数据结构学习笔记(1.大O表示法和顺序表)
- 数据结构与算法(2)-大O表示法
- 木其工作室(专业程序代写服务)[原]数据结构学习笔记(1.大O表示法和顺序表)