网站大量收购闲置独家精品文档,联系QQ:2885784924

算法分析与设计.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

例题2.10[RankSort]Program2.6Rearrangingusinganadditionalarray该题调用程序2.5,r[i]=rankofa[i]实例特征:n,operation:elementmove(即赋值),t(n)=2n例题2.11[SelectionSort]Program2.7SelectionsortThenumberofelementmoveis3(n-1).Instancesize:n,operation:comparison,t(n)=n*(n-1)/2最好,最坏和平均情形时间复杂度当长度相同的不同输入有不同的计算时间时,时间复杂度分析分别考虑三种情形:即最好,最坏和平均.当应用对计算时间有严格要求时,应做最坏情形分析-upperbound.最好情形分析给出一个算法的计算时间的下界,用来否定一个算法.最好,最坏和平均情形时间复杂度例题2.13[SequentialSearch]Program2.1Sequentialsearch当仅考虑成功查找时,averagecase:t(n)=(n+1)/2;Bestcase:t(n)=1,Worstcase:t(n)=n例题2.14[InsertionintoSortedArray]Program2.10Insertingintoasortedlistbestcase:1,worstcase:n,averagecase:(n/2)+n/(n+1)例:向数组[0:5]=[1,2,6,8,9,11]中插入4,所得到的结果为a[0:6]=[1,2,4,6,8,9,11]分析:被插入的数据x有相同的机会被插入到任何一个位置上,共有n+1个可能的插入位置,如果x最终被插入到a的i+1处,则执行的比较次数为n-i,如果x被插入到a[0],则比较次数为n。然后求平均的比较次数例题2.15[RankSortRevisited]Program2.11In-placerearrangementofelements(续)例如a=[4,3,9,3,7]则r=[2,0,4,1,3]交换过程1.a=[9,3,4,3,7]r=[4,0,2,1,3]2.[7,3,4,3,9][3,0,2,1,4]3.[3,3,4,7,9][1,0,2,3,4]4.[3,3,4,7,9][0,1,2,3,4]例题2.15[RankSortRevisited]Swap操作需3次简单赋值,所以Swap操作执行时间为常数.分析swap的执行次数.每次执行Swap至少使一个元素就位.交换后a[t]的Rank值r[t]=t,其后循环到i=t时,有r[t]=t,从而跳过循环体.算法顶多做2(n-1)次交换(swap)-上界(upperbound).RankSortRevisitedbestcase:当a[]为sorted,t(n)=0,worstcase:当输入有以下形式时:[5,3,1,2,4],算法达到最坏情形t(n)=2(n-1).(upperboundistight.)[5,4,3,2,1]不是最坏情形.分析平均情形时间复杂度较难.例题2.16[SelectionSortRevisited]Program2.12Early-terminatingversionofselectionsort在求最大元素时,如发现已排好序则终止程序执行。bestcase:n-1,worstcase:(n-1)n/2。例题2.18[InsertionSort]Program2.14Insertionsort例题2.18[InsertionSort]Program2.15AnotherversionofinsertionsortInsertionSortInsertionSort最好情形使用(n-1)次比较:已排好序输入.最坏情形使用为n(n-1)/2次比较:从大到小排列的输入(reverseordered).平均情形分析很难.2.3.3StepCount方法一条或多条执行时间是常数的语句称为“1步”,例如简单赋值语句;不涉及函数调用的表达式求值;简单的条件判断等。StepCount方法以程

文档评论(0)

智乾 + 关注
实名认证
内容提供者

科技工作者

1亿VIP精品文档

相关文档