1.3算法分析初步.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
§3. 程序性能(program performance)是指运行一个程序所需的内存大小和时间多少。所以,程序的性能一般指程序的空间复杂性和时间复杂性。 性能评估主要包含两方面: 1.性能分析(performance analysis) 2.性能测量(performance measurement) ---- 前者采用分析的方法,后者采用实验的方法。 在分析空间复杂性中, 实例特征的概念非常重要! 指令空间的大小对于所解决的待定问题不够敏感。常量及简单变量所需要的数据空间也独立于所解决的问题,除非相关数的大小对于所选定的数据类型来说实在太大。这时,要么改变数据类型要么使用多精度算法重写该程序,然后再对新程序进行分析。 Space Complexity 研究算法的空间效率,只须分析除输入数据和算法本身之外的辅助空间。 若所需辅助空间相对于输入数据量来说是常数,则称此算法为原地工作,否则,它应是输入数据规模的某种函数。 算法空间复杂度S(n)=O(g(n)),表示随着问题规模n的增大,算法运行所需存储量的增长与g(n)的增长率相同。 这里的S(n)= SP(实例特征)。 例:for (j=1; j=n; j=j+1) for (k=1; k=n; k=k+1) x=x+1; 例2: 程序1-3-6: n次多项式求值 Value=C0 + C1X1 + C2X2 + …… + CnXn templateclass T T PolyEval ( T coeff [ ], int n, const T x) { //计算n次多项式的值,coeff[0:n]为多项式的系数 T y=1, value=coeff [0]; for ( int i=1; i=n; i++) //n循环 { //累加下一项 y*=x; //一次乘法 value += y*coeff[i]; //一次加法和一次乘法 } return value; } //3n次基本运算 程序1-3-7: 利用Horner法则求多项式的值 Horner法则: P(x)=(···(cn*x+cn-1)*x+cn-2)*x+cn-3)*x+···)*x+c0 templateclass T T Horner ( T coeff [ ], int n, const T x ) { //计算n次多项式的值,coeff[0:n]为多项式的系数 T value = coeff [n]; for ( i=n-1; i=0; i - - ) //n循环 T value = value*x + coeff [i]; //一次加法和一次乘法 return value; } //2n次基本运算 * * 算法分析初步 第一章 算法分析: ----求解算法在一台抽象计算机上运行所 需要的时间和空间。 1.考虑空间复杂性的理由 ● 在多用户系统中运行时,需指明分配给该程 序的内存大小; ● 想预先知道计算机系统是否有足够的内存来 运行该程序; ● 一个问题可能有若干个不同的内存需求解决 方案,可从中择取; ● 用空间复杂性来估计一个程序可能解决的问 题的最大规模。 2.考虑时间复杂性的理由 ●某些计算机用户需要提供程序运行时 间的上限(用户可接受的); ●所开发的程序需要提供一个满意的实 时反应。 3.选取方案的规则 如果对于解决一个问题有多种可选的方案,那么方案的选取要基于这些方案之间的性能差异。对于各种方案的时间及空间的复杂性,最好采取加权的方式进行评价。但是随着计算机技术的迅速发展,对空间的要求往往不如对时间的要求那样强烈。 因此我们的分析主要强调时间复杂性。 (空间复杂性) §3.1 Space Complexity 空间复杂性: ---- 一个算法所需的存储量,表示为n的函数,称为该算法的空间复杂性。 程序所需要的空间: ---- 指令空间、数据空间、环境栈空间。 1.指令空间 ----用来存储经过编译之后的程序指令。 程序所需的指令空间的大小取决于如下因素: ●把程序编译成机器代码的编译器

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档