全球旧事资料 分类
算法设计与分析课程报告
第一章算法问题求解基础
1、算法的概念:算法是指解决问题的一种方法或过程,是由若干条指令组成的有穷序列。2、算法的特性
①有穷性:一个算法必须保证执行有限步之后结束;②确切性:算法的每一步骤必须有确切的定义;③输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;④输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;⑤可行性:算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成3、算法与程序的关系:
区别:程序可以不一定满足可终止性。但算法必须在有限时间内结束;程序可以没有输出而算法则必须有输出;算法是面向问题求解的过程描述,程序则是算法的实现。
联系:程序是算法用某种程序设计语言的具体实现;程序可以不满足算法的有限性性质。
4、算法描述方式:自然语言,流程图,伪代码,高级语言。
第二章算法分析基础
1、算法复杂性分析:算法复杂性的高低体现运行该算法所需计算机资源(时间,空间)的多少。算法复杂性度量:期望反映算法本身性能,与环境无关。理论上不能用算法在机器上真正的运行开销作为标准(硬件性能、代码质量影响)。
一般是针对问题选择基本运算和基本存储单位,用算法针对基本运算与基本存储单位的开销作为标准。算法复杂性C依赖于问题规模N、算法输入I和算法本身A。即CFNIA。
第五章分治法
1、递归算法:直接或间接地调用自身的算法。用函数自身给出定义的函数称为递归函数。注:边界条件与递归方程是递归函数的二个要素。实例:①阶乘函数;②Fibo
acci数列;③Ackerma
函数;④排列问题;⑤整数划分问题;
f⑥Ha
oi塔问题优缺点:①优点:结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性,因此它为设计算法、调试程序带来很大方便。
②缺点:递归算法的运行效率低,无论是耗费的计算时间还是占用的存储空间都比非递归算法要多。2、分治法的设计思想:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。(将求出的小规模的问题的解合并为一个更大规模的问题的解,自底向上逐步求出原来问题的解)
分治法所能解决的问题一般具有以下几个特征:①该问题的规模缩小到一定的程度就可以容易地解决;②该问题可以分为若干个规模更小的相同问题,即该问题具有最有子结构性质;③利用该问题分解出的r
好听全球资料 返回顶部