c++课件绪论.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例1.5:设对一个n×n矩阵A自乘后送入矩 阵B,其算法步骤为: for i=1 to n for j=1 to n B[i,j]←0 for k=1 to n B[i,j] ← B[i,j]+A[i,k]*A[k,j] end (k) end (j) end (i) 在上述算法中,语句3重复次数为n2,语句5重复次数为n3。若语句3执行1次时间为t1,语句5执行1次时间为t2,忽略其他控制语句的执行时间,此算法耗用的时间近似为 T(n)= t1 n2+ t2 n3 当n很大时,有 表示当n充分大时,T(n)和n3的比值是常数,即T(n)与n3是同阶的,记作T(n)=O(n3)。我们称T(n)是上述算法的时间复杂度。 例1.11 i=1;j=0; while ( i+j=n ) { if ( ij ) j++ else i++; } * [ 例:] 假设8枚金币中有一枚是伪造的,真假金币的区别仅仅是重量不同,现只有一个没有砝码的天平做工具,则至少用3次比较即可找出这枚伪造的金币。要求用文字写出这三此比较的算法。 (提示:参考折半查找法即二分法) 【解答:】先任选4枚金币,每边各2枚置于天平上,若天平平衡,则说明伪造的金币在另外4枚中,若不平衡,则说明伪造的金币在选择的4枚中,于是1次比较可以确定伪造的金币在哪4枚中;然后在含伪造的金币的4枚中,任选2枚金币,每边各1枚置于天平上,若天平平衡,则说明伪造的金币在另外2枚中,若不平衡,则说明伪造的金币在选择的2枚中,于是2次比较可以确定伪造的金币在哪2枚中;最后在含伪造的金币的2枚中,任选1枚金币与其他1枚真币置于天平上,若不平衡,则选择的这枚是伪造的,否则余下的1枚是伪造的。因此3次比较即可找出伪造的金币。 * 算法的简单分析: A. 算法的评价准则 (1)正确性 (2)执行算法所耗费的时间(高效率)。 (3)执行算法所耗费的存储空间(主要考虑辅存空间;低存储要求)。 (4)算法的可读性、易维护性要好(易于理解,易于编码,易于调试)。 * B. 算法效率的度量 B-1. 算法的时间复杂度 1. 程序运行所耗费的时间(由下列因素决定): a. 算法所选用的策略 b. 问题的规模 : 算法求解问题n的输入量 (或初 始数据量) c. 书写程序所采用的语言 d. 编译程序所产生的机器代码的质量 e. 机器执行指令的速度 * 若不考虑机器硬、软件因素,可以认为算法“运行工作量”的大小是问题规模n的函数。 一个算法耗费的时间=算法中每条语句的执行时间之和。 其中n2,n3分别是语句3和语句5的频度,记作f(n)。 * 2. 不考虑机器软硬件环境时算法的时间耗费: 设:执行每条语句所需时间为单位时间,则: 一个算法耗费的时间==所有语句的频度之和 频度---是指基本操作语句重复执行的次数。 [注:] 一个算法中所有语句的频度之和构成了该算 法的运行时间 * 算法的渐近时间复杂度(简称时间复杂度T(n)---) 记作:T(n)=O( f(n) ) 表示当问题的规模n→∞时, 时间复杂度T(n)为函数 f(n)的数量级(阶);或者称时间复杂度T(n)为频度之和的数量级(阶)。 **评价一个算法的时间性能,主要标准是算法的渐近时间复杂度。 上例中,算法中的基本操作的频度是问题规模n的某个函数f(n)。 * 算法效率的度量:采用时间复杂度 例1.6 分析以下程序段的时间复杂度 for (i=1;in;i++) { y=y+1; for (j=0; j=(2*n); j++) x++; } /* 1 * / /* 2 * / * 分析:语句的频度指的是该语句重复执行的次数。一个算法中所有语句的频度之和构成了该算法的运行时间。 语句1的频度是:n-1 语句2的频度是: 则该程序段的时间复杂度: T(n)= * 例1.7 分析以下程序段的时间复杂度 i=1; while (i=n) i=i*2 语句1的频度是:1 设语句2的频度是f(n),则有:

文档评论(0)

基本资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档