算法设计精要.ppt

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

示例 示例 示例 示例 示例 示例 示例 示例 示例 示例 示例 示例 示例 示例 示例 示例 示例 最坏情况分析 记最坏情况下的元素比较次数是Cw(n); PARTITION一次调用中的元素比较数是p-m+1,故每级递归调用上,元素的比较次数等于该级所处理的待分类元素数。 最坏情况下,每级递归调用的元素总数仅比上一级少1,故Cw(n)是r由n到2的累加和。 即:Cw(n)= = Ο(n2) 时间复杂度 平均情况分析 平均情况是指集合中的元素以任一一种顺序排列,且任选所有可能的元素作为划分元素进行划分和分类,在这些所有可能的情况下,算法执行性能的平均值。 设调用PARTITION(m,p)时,所选取划分元素v恰好是A(m:p-1)中的第i小元素(1≤i≤p-m)的概率相等。则经过一次划分,所留下的待分类的两个子文件恰好是A(m:j-1)和A(j+1:p-1)的概率是:1/(p-m), m≤jp。则有, 其中, n+1是PARTITION第一次调用时所需的元素比较次数。 CA(0) = CA(1) = 0 时间复杂度 化简上式可得: CA(n)/(n+1) = CA(n-2)/(n-1)+2/n+2/(n+1) = CA(n-3)/(n-2)+2/(n-1)+2/n+2/(n+1) … = CA(1)/2+ 由于 所以得,CA(n)2(n+1)loge(n+1) = Ο(nlogn) 时间复杂度 二分检索算法 Procedure BINSRCH(A,n,x,j) integer low,high,mid,j,n; low?1;high?n if(n0) while (low≤high) do { mid?[(low+high)/2] /*取中间值*/ case xA[mid]:high?mid-1 xA[mid]:low?mid+1 else:j?mid;return /*检索成功*/ endcase } j?0 /*检索失败*/ End BINSRCH 二分检索的时间复杂度 定理 :若n在区域[2k-1,2k)中,则对于一次成功的检索,二分检索至多作k次比较,而对于一次不成功的检索,或者作k-1次比较或者作k次比较。 最坏情况下的成功检索计算时间Θ(logn) 最坏情况下的不成功检索计算时间Θ(logn) 最好情况下的成功检索计算时间Θ(1) 最好情况下的不成功检索计算时间Θ(logn) 每种不成功的检索时间都为Θ(logn) 二分检索在各种情况下的检索时间 计算时间 最好 平均 最坏 成功的检索 Θ(1) Θ(logn) Θ(logn) 不成功的检索 Θ(logn) Θ(logn) Θ(logn) 以比较为基础检索的时间下界 定理 :设A(1:n)含有n(n≥1)个不同的元素,排序为A(1)A(2)…A(n)。又设以比较为基础去判断是否x∈A(1:n)的任何算法在最坏情况下所需的最小比较次数是FIND(n),那么FIND(n)≥[log(n+1)] 定理表明,任何一种以比较为基础的算法,其最坏情况时间都不可能低于O(logn),也就是不可能存在其最坏情况时间比二分检索数量级还低的算法。 找最大和最小元素 问题描述:在含有n个不同元素的集合中同时找出它的最大和最小元素 一般解决方法 Procedure STRAITMAXMIN(A,n,max,min) integer i,n; max?min?A(1) for i?2 to n do { if A[i]max then max?A[i] endif if A[i]min then min?A[i] endif } End STRAITMAXMIN If A[i]max then max?A[i] else if(A[i]min then min?A[i] endif endif 算法的时间复杂度 没改进:2(n-1) 改进后:最好n-1,最坏2(n-1),平均3(n-1)/2 可考虑用分治策略来解决这个问题 将任一实例I=(n,A(1),…,A(n))分成一些较小的实例来处

文档评论(0)

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

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

1亿VIP精品文档

相关文档