算法导论学习笔记-渐近符号

算法导论-渐近符号

在描述插入排序算法时,我们使用来刻画其在最坏情况下的运行时间,其中a,b和c是常量。
我们使用来表示其执行时间的增长量级。本文将继续介绍除了(包含)之外的渐进符号和性质。

记号

algorithm_descr_mark1

我们称 g(n)f(n) 的一个渐进紧确界(asymptotically tight bound)。的定义要求每个成员均渐近非负,即当 n 足够大时,f(n) 非负。( 渐进正函数就是对所有足够大的 n 均为正的函数。)

直觉上,一个渐近正函数的的低阶项在确定渐近确界时可以被忽略,因为对大的 n,它们是无足轻重的。当 n 较大时,即使最高阶项的很小一部分都足以支配所有的低阶项。因此,将 置为稍小于最高阶项系数的值并将 置为稍大于最高阶项系数的值能使 记号定义中的不等式成立。

我们经常使用来表示一个常量或者关于某个变量的一个常量函数。

O记号

algorithm_descr_mark1

记号渐近的给出了一个函数的上界和下界。当只有一个渐近上界时,使用 记号。

注意, 蕴含 ,因此 记号是一个比 记号更强的概念。按照集合论中的写法,我们有 , 的集合是 集合的子集。 只要求 g(n)f(n) 的渐近上界,而非渐近上确界,即 f(n) 的最高阶项指数系数小于等于 g(n) 最高阶项。

当我们说“运行时间为 ”时,意指存在一个 的函数 ,使得对n的任意值,不管选择什么特定规模为n的输入,其运行时间的上界都是。也就是说最坏情况运行时间为

记号

algorithm_descr_mark3

正如记号提供了一个函数的渐近上界, 记号提供了 渐近下界。同理可得, 只要求g(n)f(n)的渐近下界,即f(n)的最高阶项指数系数大于等于g(n)最高阶项。

记号

algorithm_descr_mark4

不同于 记号, 记号所描述的集合更小。它针对任意的正常量c而并非存在正常量c,加上函数值大小范围上的差异,说明随着n的增大,f(n)的变化相对于g(n)的变化来说显得微不足道,即f(n)的最高阶项指数系数小于g(n)最高阶项。

记号

algorithm_descr_mark5

类似于记号, 缩小了f(n)的集合范围,说明了f(n)的最高阶项指数系数大于g(n)最高阶项。


性质

假设函数f(n)最高阶项指数系数为a,g(n)最高阶项指数系数为b,那么对于不同的渐近符号,函数fg的渐近比较可以简化为a和b的大小比较。

比较各种函数

实数的许多关系性质也适用于函数渐近比较。下面假定 和 渐近为正。那么有以下性质:

算法导论学习笔记-渐近符号_第1张图片
算法导论学习笔记-渐近符号_第2张图片

三分性

需要注意的是,实数的大小比较,大于小于等于三种情况至少有一种情况成立。但对于函数来说,并非所有的函数都可以进行渐近比较,也就是说对于函数 和 , 和 也许都不成立。

比如函数n和,因为1+sin(n)取值在0到2之间变化,故无法和n进行渐近比较。

你可能感兴趣的:(学习笔记,算法导论)