第1周绪论第5讲-算法分析基础.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第1周绪论第5讲-算法分析基础.pdf》由会员分享,可在线阅读,更多相关《第1周绪论第5讲-算法分析基础.pdf(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、分析算法分析算法占用的资源占用的资源 CPU时间时间 内存空间内存空间 时间性能分析时间性能分析 空间性能分析空间性能分析 一个算法是由控制结构一个算法是由控制结构(顺序顺序、分支和循环三种分支和循环三种)和和原原操操 作作(指固有数据类型的操作指固有数据类型的操作,如如+、- -、*、/、+和和-等等)构成构成 的的。算法执行时间算法执行时间取决于两者的综合效果取决于两者的综合效果。 一个算法的基本构成:一个算法的基本构成: 控制语句控制语句1 原操作原操作 控制语句控制语句n 原操作原操作 控制语句控制语句2 原操作原操作 例如:例如: void fun(int a,int n) int
2、i; for (i=0;in;i+) ai=2*i; for (i=0;in;i+) printf(%d, ai); printf(n); 原操作原操作 算法分析方式:算法分析方式: 事后分析统计方法事后分析统计方法:编写算法对应程序,统计其执行时间。:编写算法对应程序,统计其执行时间。 编写程序的编写程序的语言不同语言不同 执行程序的执行程序的环境不同环境不同 其他其他因素因素 事前估算分析方法事前估算分析方法:撇开上述因素,认为算法的执行时间是问:撇开上述因素,认为算法的执行时间是问 题规模题规模n的函数。的函数。 所以不能用绝对执行所以不能用绝对执行 时间进行比较。时间进行比较。 求求出
3、算法所有原操作的执行次数(也称为出算法所有原操作的执行次数(也称为频度频度) ,它是,它是问题规问题规 模模n的函数,用的函数,用T(n)表示。表示。 算法算法执行时间执行时间大致大致 = 原原操作所需操作所需的的时间时间T(n)。所以。所以T(n)与与算算 法的执行时间法的执行时间成正比成正比 。为此用。为此用T(n)表示算法的执行时间。表示算法的执行时间。 比较比较不同算法的不同算法的T(n)大小得出算法执行时间的好坏。大小得出算法执行时间的好坏。 用于表示求解问题大小的正整数,如n个记录排序 分析算法的执行时间分析算法的执行时间 #define MAX 20/定义最大的方阶定义最大的方阶
4、 void matrixadd(int n,intAMAXMAX,int BMAXMAX, int CMAXMAX) int i,j; for (i=0;in;i+)/ for (j=0;jn;j+)/ Cij=Aij+Bij;/ 【例例1- -4】求两个求两个n阶方阵的相加阶方阵的相加C=A+B的算法如下的算法如下,分析其分析其 时间复杂度时间复杂度。 #define MAX 20/定义最大的方阶定义最大的方阶 void matrixadd(int n,intAMAXMAX, int BMAXMAX, int CMAXMAX) int i,j; for (i=0;in;i+)/ for (j
5、=0;jn;j+)/ Cij=Aij+Bij; / 解:解:除变量定义语句外,除变量定义语句外, 该算法包括该算法包括3个可执行语句个可执行语句 、和。、和。 频度为频度为n+1,循环体执行,循环体执行n次次 频度为频度为n(n+1) 频度为频度为n2 所有语句频度之和为:所有语句频度之和为: T(n) = n+1+n(n+1)+n2 = 2n2+2n+1 算法中执行时间算法中执行时间T(n)是问题规模是问题规模n的某个函数的某个函数f(n),记作:记作: T(n) = O(f(n) 算法算法的执行时间用时间复杂度来表示的执行时间用时间复杂度来表示 记号记号“O”读读作作“大大O”,它表示随问
6、题规模它表示随问题规模n的增大算法执行的增大算法执行 时间的增长率和时间的增长率和f(n)的的增长率增长率相同相同。 趋势分析趋势分析 T(n) n f(n) “O”的的形式定义形式定义为为:T(n) = O(f(n)表示存在一个正的常数表示存在一个正的常数M, 使得当使得当nn0时都满足:时都满足: |T(n)|M|f(n)| f(n)是是T(n)的的上界上界 这种上界可能很多,通常取最这种上界可能很多,通常取最 接近的上界,即接近的上界,即紧凑上界紧凑上界 大致情况:大致情况: lim n T(n) f(n) = M 也就是只求出也就是只求出T(n)的最高阶,忽略其低阶项和常系数,这样的最
7、高阶,忽略其低阶项和常系数,这样 既可简化既可简化T(n)的计算,又能比较客观地反映出当的计算,又能比较客观地反映出当n很大时算法的很大时算法的 时间性时间性能能。 本质上讲,是本质上讲,是一一种种T(n) 最高最高数量级的比较数量级的比较 例如例如 :T(n) = 2n2+2n+1 = O(n2) 一个没有循环的算法的执行时间与问题规模一个没有循环的算法的执行时间与问题规模n无关,记作无关,记作O(1),也称作,也称作常常 数阶数阶。 一个只有一重循环的算法的执行时间与问题规模一个只有一重循环的算法的执行时间与问题规模n的增长呈线性增大关系,的增长呈线性增大关系, 记作记作O(n),也称,也
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 森林经营规划
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内