递归与分治策略课件.pptVIP

递归与分治策略课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

複雜度分析說明:整形二維數組Board表示棋盤,Borad[0][0]使棋盤的左上角方格。tile是一個全局整形變數,用來表示L形骨牌的編號,初始值為0。tr:棋盤左上角方格的行號;tc:棋盤左上角方格的列號;dr:特殊方各所在的行號;dc:特殊方各所在的列號;size:size=2k,棋盤規格為2k×2k。複雜度分析:T(k)=4k-1=O(4k)漸進意義下的最優演算法*2.7合併排序基本思想:將待排序元素分成大小大致相同的2個子集合,分別對2個子集合進行排序,最終將排好序的子集合合併成為所要求的排好序的集合。遞歸演算法描述:publicstaticvoidmergeSort(Comparablea[],intleft,intright){if(leftright){//至少有2個元素inti=(left+right)/2;//取中點mergeSort(a,left,i);mergeSort(a,i+1,right);merge(a,b,left,i,right);//合併到數組bcopy(a,b,left,right);//複製回數組a}}複雜度分析T(n)=O(nlogn)漸進意義下的最優演算法*演算法改進演算法mergeSort的遞歸過程可以消去。初始序列[49][38][65][97][76][13][27]第一步[3849][6597][1376][27]第二步[38496597][132776]第三步[13273849657697]*改進後的演算法描述及其複雜性演算法描述:略複雜性分析:最壞時間複雜度:O(nlogn)平均時間複雜度:O(nlogn)輔助空間:O(n)思考題:給定有序表A[1:n],修改合併排序演算法,求出該有序表的逆序對數。*2.8快速排序快速排序是基於分治策略的另一個排序演算法,其基本思想是:分解——以ap為基準元素將ap:r劃分成3段ap:q-1、aq和aq+1:r,使得ap:q-1中任何元素小於aq,aq+1:r中任何元素大於aq;下標q在劃分過程中確定;遞歸求解——通過遞歸調用快速排序演算法分別對ap:q-1和aq+1:r進行排序;合併——由於對ap:q-1和aq+1:r的排序是就地進行的,所以在ap:q-1和aq+1:r都已排好序後不需要執行任何計算ap:r就已排好序。在快速排序中,記錄的比較和交換是從兩端向中間進行的,關鍵字較大的記錄一次就能交換到後面單元,關鍵字較小的記錄一次就能交換到前面單元,記錄每次移動的距離較大,因而總的比較和移動次數較少。快速演算法描述:templateclassTypevoidQuickSort(Typea[],intp,intr){if(pr){intq=Partition(a,p,r);QuickSort(a,p,q-1);//對左半段排序QuickSort(a,q+1,r);//對右半段排序}}*分解/劃分演算法描述分解/劃分演算法描述:templateclassTypeintPartition(Typea[],intp,intr){inti=p,j=r+1;Typex=a[p];//將x的元素交換到左邊區域//將x的元素交換到右邊區域while(true){while(a[++i]x);while(a[--j]x);if(i=j)break;Swap(a[i],a[j]);}a[p]=a[j];a[j]=x;returnj;}{6,7,51,2,5,8}初始序列{6,7,51,2,5,8}j--;↑i↑j{5,7,51,2,6,8}i++;↑i↑j{5,6,51,2,7,8}j--;↑i↑j{5,2,51,6,7,8}i++;↑i↑j{5,2,51}6{7,8}完成快速排序具有不穩定性!*複雜性分析及隨機化的快速排序演算法演算法複雜性分析:最壞時間複雜度:O(n2)平均時間複雜度:O(nlogn)輔助空間:O(n)或O(logn)快速排序演算法的性能取決於劃分的對稱性。通過修改演算法partition,可以設計出採用隨機選擇策略

文档评论(0)

子不语 + 关注
官方认证
服务提供商

平安喜乐网络服务,专业制作各类课件,总结,范文等文档,在能力范围内尽量做到有求必应,感谢

认证主体菏泽喜乐网络科技有限公司
IP属地山东
统一社会信用代码/组织机构代码
91371726MA7HJ4DL48

1亿VIP精品文档

相关文档