第三章分治与平衡.ppt
《第三章分治与平衡.ppt》由会员分享,可在线阅读,更多相关《第三章分治与平衡.ppt(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Just_2011computer2 2第三章第三章 分治与平衡分治与平衡要想直接解决一个较大的问题,有时是相当困难。分而治之(divide-and-conquer)的设计思想是,把一个难以下手的大问题,分割成一些较小的子问题,以便各个击破。因为这些子问题较小,可能比原问题容易处理一些。如果能把一个输入量为n的问题分割成k个子问题,1kn,且这些子问题都有可解,并且能利用这些子问题的解求出原问题的解,那么这种分治方法便是可行的。由分治法产生的子问题往往是原问题较小模式,为使用递归技术提供了方便。反复应用分治手段,可以使子问题与原问题类型一致而体积却越来越小,最终使子问题缩小到母须再分且容易求解
2、。3 3第三章第三章 分治与平衡分治与平衡分治法步骤:1、分解:将原问题分解为若干规模较小,相互独立,与原问题形式上相同的子问题。2、解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题。3、合并:将各个子问题的解合并为原问题的解。4 45 5需要进一步研究的问题:根据分治法的分割原则,应把原题分为多少个子问题才较适宜?每个子问题是否大小一样及怎样才为适当?目前很难给出科学的回答,实践表明k常取2,子问题大小相等,比较有效。子问题大小相等的做法出自一种平衡(balancing)子问题的思想。平衡思想普遍存在,比如木桶定理:一只沿口不齐的木桶,最短的那块木板或低缺口决定它的盛水容量
3、。为提高木桶的整体效益,则要求补齐最短木板的长度以及使各木板长度相等。木桶理论是由美国管理学家彼得提出的。组成木桶的木板如果长短不齐,那么木桶的盛水量不是取决于最长的那一块木板,而是取决于最短的那一块木板。这就是说构成组织的各个部分往往是优劣不齐的,而劣势部分往往决定整个组织的水平。7 7第一节第一节 合并排序合并排序考虑n个元素的排序问题,就是将这些元素排列成一个有序序列,我们这里假定没有相等的元素,排成递增序列。一、选择整序(Selection Sort)将这几个元素存于一个数组之中,首先通过n-1次比较找出这个数组中的最小元素,并将这个元素与第一个数组元素交换(如果正好第一个数组元素是最
4、小元素,则不必交换)。第i次在剩余的n-i+1个元素(数组中第i个到第n个元素)中找出最小元素与第i个元素交换,重复以上做法,直到i=n-1为止。这个算法中,找第个最小元素,需要n-i次比较,所以总的比较次数:T(n)=(n-1)+(n-2)+2=1=1/2n(n-1)也可以用递归关系:1010二、冒泡整序这种排序的基础思想是,在整个过程中,每次仅进行相邻两元素比较。不像选择整序那样一个较小的元素一下子放在顶部,而是每次向上移动一步,缓缓上升到顶部,象一个气泡从水底向上运动一样。比如序列:8,3,4,9,7第1次比较:3,8,4,9,7 第1个与第2个数比较第2次比较:3,4,8,9,7 第2
5、个与第3个数比较第3次比较:3,4,8,9,7 第3个与第4个数比较第4次比较:3,4,8,7,9 第4个与第5个数比较,最后位是最大值第5次比较:3,4,8,7,9 第1个与第2个数比较第6次比较:3,4,8,7,9 第2个与第3个数比较第7次比较:3,4,7,8,9 第3个与第4个数比较,第4位是次大值第8次比较:3,4,7,8,9 第1个与第2个数比较第9次比较:3,4,7,8,9 第2个与第3个数比较,停止,因为没有交换的操作,终止算法。最坏情况与平均特性至少是O(n2)阶。11111.1 引言引言三、合并排序 选择整序可以看成分成大小不等的两个子问题(n-1个与1个)的分治法的递归应
6、用。合并排序是原问题分成大小相等的两个子问题,先把两个子集的元素排成非递减序,然后把这两个排序好的子序列合并成一个非递减序列。12121313合并排序主程序伪代码:MergeSort(low,high)/Alow:high是一个全程数组,含有high-low+1个待排序的元素 integer low,high;if low mid then for k from j to high do Bi=Ak;i=i+1;endfor else for k from h to mid do Bi=Ak;i=i+1;endfor endif for k from low to high do Ak=Bk;
7、endforend Merge15151616第二节第二节 二分搜索技术二分搜索技术 二分搜索技术是运用分治策略的典型例子。问题:给定已排好序的n个元素a0:n-1,现要在这个元素中找出一特定元素x。首先较易想到的是用顺序搜索方法,逐个比较a0:n-1中元素,直至找出元素x,最坏情况需要作个比较,即需要O(n)。这个方法设有很好利用n个元素已排好序这个条件。17171818二分搜索算法伪代码:BinarySearch(A,n,x)/A1:n是一个非降序列的元素数组,判断x是否在A中出现/若出现,返回位置j,否则返回j0 integer left,right,mid,j;left=1;right
8、=n;while leftright do mid=(left+right)/2;if x=Amid then j=mid;return;elseif xAmid then left=mid+1;else right=mid 1;endif endwhile j=0/未找到end BinarySearchwhile 的每次循环(最后一次除外)都将以减半的比例缩小搜索范围,所以,该循环在最坏的情况下需要执行O(log2n)次。由于每次循环需耗时O(1),因此在最坏情况下,总的时间复杂性为O(log2n)。1919第三节第三节 整数乘法和矩阵乘法整数乘法和矩阵乘法一、整数乘法20202222232
9、3二、Strassen矩阵乘法24242525棋盘覆盖在一个2k2k 个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。棋盘覆盖当k0时,将2k2k棋盘分割为4个2k-12k-1 子棋盘(a)所示。特殊方格必位于4个较小子棋盘之一中,其余3个子棋盘中无特殊方格。为了将这3个无特殊方格的子棋盘转化为特殊棋盘,可以用一个L型骨牌覆盖这3个较小棋盘的会合处,如(b)所示,从而将原问题转化为4个较小规模的棋盘覆盖问题。递归地使用这种
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 分治 平衡
限制150内