续第二章

第二章算法分析

1.数学基础:

①数学定义:表示的含义是小于等于(O),大于等于(Ω),等于,小于(o)。全书的基本四个定义。

还有三个法则,在书p12,

2.模型:

计算模型:通常是一台标准的计算机,在机器中指令被顺序的执行。对模型缺陷的考虑,(内存,时间单元等)所以要有高效的算法。

3.要分析的问题:

运行时间(输入的大小)

①最大的子序列和问题:通过时间对比分析。

4.运行时间的计算:

声明不需要时间,其他的需要时间。其法则如下:

①FOR法则:一次for循环的运行时间至多是该for循环内语句(包括测试)的运行时间乘以迭代的次数。

②嵌套的for循环:从里向外分析这些循环,在一组嵌套循环内部的一条语句总的运行时间为该语句的运行时间乘以该组所有的for循环的大小的乘积。

③顺序语句:将各个语句的运行时间求和即可(这意味着,其中的最大值就是所得的运行时间)。

④IF/ELSE语句:一个if/else语句的运行时间从不超过判断再加上if/else后面语句中运行时间长者的总的运行时间。

注:在某些情形下这么估计有些过高,但绝对不会估计过低,分析的基本策略是从内部(或最深层部分)向外展开的,如果有函数调用,那么这些调用要首先分析。

⑤运行时间的例子的应用:最大子序列和问题的解。

5.运行时间中的对数:

***分析算法最混乱的方面大概集中在对数上面。

三个例子:对分查找,欧几里得算法,幂运算。(注:这里面的运算我自己也没有看懂,我觉得需要多看几遍书,同时兼顾后面的内容更容易理解)。

(我觉得这里对运行时间的计算有点复杂,暂时没有看懂,需要继续往后面看,以便于加深理解)。

 

你可能感兴趣的:(续第二章)