算法效率分析基础.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文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ax(n)+bx(n-1)+cx(n-2)=0的特征方程ar2+br+c=0 定理1 设r1,r2是特征方程的两个根 第一种情况:如果r1和r2是不等的实根, 第二种情况:r1和r2相等, 第三种情况:r1和r2是两个不相等的复数, * 例子,斐波那契数算法1时间效率递归式的计算 当n1时,A(n)=A(n-1)+A(n-2)+1 A(0)=0 , A(1)=0 改写:[A(n)+1]-[A(n-1)+1]-[A(n-2)+1]=0 替换B(n)=A(n)+1 B(n)-B(n-1)-B(n-2)=0, B(0)=1 , B(1)=1 则 特征方程是: r2-r-1=0 根为, 属于前面第1种情况 * αβ两值的计算依赖于B(n)的初始值B(0)=1 , B(1)=1 最后得 * 算法分析中的常见递推类型 B.3 减一法: T(n)=T(n-1)+f(n) 减常因子: T(n)=T(n-b)+f(n) 分治法: T(n)=aT(n/b)+f(n) * 2.6 算法的经验分析 很多貌似简单的算法很难用数学的精确性和严格性来分析 经验分析 * 经验分析 通用方案 1、了解实验的目的 2、决定用来度量效率的量度和单位 3、决定输入样本的特性 4、为实验准备算法的程序 5、生成输入样本 6、对样本运行算法,记录实验结果 7、分析获得的实验数据(如用散点图) * 2.7 算法可视法 用图形传达算法的一些有用信息 * 作业 * * * * * * * * * * * * * * * * * * * * * * * * * MaxElement(A[0..n-1]) //求给定数组中最大元素的值 //输入:实数数组A[0..n-1] //输出:A中最大元素的值 maxval←A[0] for i←1 to n-1 do if A[i]maxval maxval←A[i] return maxval 第三步: 检查基本操作的执行次数是否只依赖输入规模: 比较次数相同 * MaxElement(A[0..n-1]) //求给定数组中最大元素的值 //输入:实数数组A[0..n-1] //输出:A中最大元素的值 maxval←A[0] for i←1 to n-1 do if A[i]maxval maxval←A[i] return maxval 第四步: 建立一个算法基本操作执行次数的求和表达式: * 把C(n)记作比较运算的执行次数, 由于该算法每执行一次循环就会做一次比较,并且对于循环变量i在1和n-1(包含在内)中的每个值都会做一次循环,所以,我们得到C(n)的下列求和表达式: * 分析非递归算法效率的通用方案 1. 决定用哪个(哪些)参数作为输入规模的度量 2. 找出算法的基本操作(作为一规律,它总是位于算法的最内层循环中)。 检查基本操作的执行次数是否只依赖输入规模。如果它还依赖一些其他的特性,则最差效率、平均效率以及最优效率(如果必要)需要分别研究。 建立一个算法基本操作执行次数的求和表达式。 利用求和运算的标公式和法则来建立一个操作次数的闭合公式,或者至少确定它的增长次数。 * 例2 元素惟一性问题:验证给定数组中的元素是否全部惟一。 UniqueElements(A[0..n-1]) //输入:数组A[0..n-1] //输出:如果A中的元素全部惟一,返回“true” // 否则,返回“false”. for i←0 to n-2 do for j←i+1 to n-1 do if A[i]=A[j] return false Return true 第一步: 决定用哪个(哪些)参数作为输入规模的度量: 数组元素的个数n * UniqueElements(A[0..n-1]) fo

文档评论(0)

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

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

1亿VIP精品文档

相关文档