第一章算法引入1
算法的八大基本步骤:问题分析、建立数学模型、算法的设计与选择、算法分析、算法表示、实现算法、程序调试、结果整理文档
算法的三大要素:操作、控制结构、数据结构
算法的四大基本特征:输入、输出、确定性、有限性
*补充(输入:有零个或多个外部量作为算法的输入
输出:算法产生至少一个量作为输出
确定性:组成算法的每条指令清晰、无歧义
有限性:算法中每条指令的执行次数有限,执行每条指令的时间也有限
对算法的评价有两个大的方面:人对算法的维护的方便性、算法在实现运行时占有的机器资源的多少即算法的运行的时间和空间效率
算法复杂性的高低体现在运行该算法所需要的计算机资源的多少上,所需要的资源越多该算法的复杂性越高,反之所需要的资源越少该算法的复杂性越低
算法运行所需要的计算机资源的量,需要时间资源的量称为时间复杂性
需要的空间的量称为空间复杂性
算法复杂性包括时间复杂性和空间复杂性
一个算法中所有语句的频度之和构成了该算法的运行时间
以上时间复杂度级别是由低到高排列的,其随规模n的增长率,由图1图1T(n)与规模n的函数关系10
对较复杂的算法,计算算法的运行时间,经常从算法中选取一种对于所研究的问题来说是基本(或者说是主要)的原操作,以该基本操作在算法中重复执行的次数作为算法运行时间的衡量准则
而度量一个程序的执行时间通常有两种方法
一、事后统计的方法二、事前分析估算的方法第二章递归与分治策略1
分治法的设计思想:将一个难以直接解决的大问题,分割成一些规模较小的相同子问题,以便各个击破,分而治之
分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同
求出子问题的解,就可得到原问题的解
(简答题)分治法的适用条件(特征):①该问题的规模缩小到一定的程度就可以容易地解决;②该