以后算法导论的学习笔记久发不在算法导论这个类别,下面是前两章的链接:
第一章
第二章
第三章 Growth of functions
这一章讲了两大部分。第一部分是讲了渐进符号,有theta,bigO,bigΩ,littleo,littleΩ。第二部分讲了几个常见的数学知识。
渐进符号
Θ符号
渐进符号表示的都是算法的输入规模无限大的时候的运行时间的增长率。
例如:f(n) = Θ(n^2)
表示的是在n足够大的时候f(n)的增长率是差不多n的二次方。下面给出准确定义:
Θ(g(n)) = {f(n):存在两个常数c1和c2,当n >= n0的时候。满足 0 <= c1g(n) <= f(n) <= c2g(n)}
从定义我们就可以明白Θ(g(n))表示的是一个集合。
值得注意的是例如上面的表达式f(n) = Θ(n^2)中的等号相当于“is”,而不是等于。
还有一点是上面的等式成立的条件是***存在***两个常数。满足定义中的情况。只要存在两个常数满足定义那就可以了。
O符号
Θ符号是比较强大的符号。它可以比较准确的表示函数的增长率。
而O