算法导论第三章_函数的增长_读书笔记
以下是我的读书笔记,有很多的东西有可能是胡编乱造与事实相反。
1,(Ω,Θ,O)。
2,上述记号为标识符,为集合的标识符。
3,T(n)=2n+3,表示对于一个算法来说,当输入规模为n的时候,算法运行的时间。
4,T(n)=Θ(g(n)),表示T(n)作为一个函数属于集合Θ(g(n))。
5,Θ(g(n))定义了一个集合,这个集合的元素是一些满足下列条件的函数。
Θ(g(n)) = {f(n) : there exist positive constants c1, c2, and n0 such that 0 ≤ c1g(n) ≤ f(n) ≤ c2g(n) for all n ≥ n0}
6,称g(n)为f(n)的渐近确界。
7,可以这样表示:f(n)≈g(n)当n>n0
8,可以这样表示:f(n) ∈ Θ(g(n)) 当n>n0
9,可以这样表示:f(n) = Θ(g(n)) 当n>n0 三种表示都是第二种表示的意思。都是表示规模的。
10,f(n)=Ω(g(n)),表示这个算法是有一个渐近下界的,这个渐近下界为g(n),算法的运行时间f(n)趋近并大于等于这个g(n)。
11,f(n)=Θ(g(n)),表示这个算法是有一个渐近确界的,这个渐近确界为g(n),算法的运行时间f(n)趋近g(n)。
12,f(n)=O(g(n)),表示这个算法是有一个渐近上界的,这个渐近上界为g(n),算法的运行时间f(n)趋近并小于等于这个g(n)。
13,怎么理解最坏情况,就是说f(n)=2n+3这种情况并不多见,或者我们也没有必要作出精确的时间,很多情况都是以数量级来关心算法的效率的,于是f(n)(算法的运行时间)一般都以上述记号来表示;或者说f(n)=2n+3这种情况跟本就没有,因为对于相同的n,同一个算法的运行时间是不定的,比如插入排序对于已排序的输入,与非已排序的输入,运行时间不同。书中的算法好像就是只讨论最坏情况,或者讨论最坏情况居多。