- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
for ( int i = 0; i(r-p+1)/5; i++ ) { int s=p+5*i, int t=s+4; bubbleSort(s,t); swap(a, p+i, s+2); }:将a[p+5*i]至a[p+5*i+4]的第3小元素 与a[p+i]交换位置; //找中位数的中位数,r-p-4即上面所说的n-5 * Floor(x)返回小于或等于x的最大整数。Ceil(x)返回不小于参数x的最小整数值 * 用中位数分割,而不是原点O * X坐标的中位数 * (1)鸽舍原理,也称“抽屉原理”或利克雷原则,它是一个重要而又基本的数学原理,应用它可以解决各种有趣的问题,并且常常能够得到令人惊奇的结果,许多看起来相当复杂,甚至无从下手的问题,利用它能很容易得到解决。 ???? 原理1:把n+1个元素分成n类,不管怎么分,则一定有一类中有2个或2个以上的元素。 ???? 原理2:把多于m×n个物体放到n个抽屉里,那么一定有一个抽屉里有m+1个或者m+1个以 ?????????? 上的物体。 ???? 原理2-1:把m个元素任意放入n(n<m=个集合,则一定有一个集合呈至少要有k个元素。 ???????????? 其中 k= m%n(当m%n==0)或k=m%n+1(当m%n0) * 74 77 78 79 设p1pn是从p1到pn的直线,这条直线把集合S分成两个子集:S1是位于直线左侧和直线上的点构成的集合,S2是位于直线右侧和直线上的点构成的集合。S1的凸包由下列线段构成:以p1和pn为端点的线段构成的下边界,以及由多条线段构成的上边界,这条上边界称为上包。类似地,S2中的多条线段构成的下边界称为下包。整个集合S的凸包是由上包和下包构成的。 形象一点的话,你可以假设木板上有很多钉子,拿一根橡皮筋把它们套住,橡皮筋形成的这个凸多边形就是个凸包。 设p1=(x1, y1), p2=(x2, y2), …, pn=(xn, yn) 按照x轴坐标升序排列。 最左边的点p1和最右边的点pn一定是该集合的凸包顶点(即极点设p1=(x1, y1), p2=(x2, y2), …, pn=(xn, yn)是平面上n个点构成的集合S,并且这些点按照x轴坐标升序排列。 设p1pn是从p1到pn的直线,这条直线把集合S分成两个子集:S1是位于直线左侧和直线上的点构成的集合,S2是位于直线右侧和直线上的点构成的集合。S1的凸包由下列线段构成:以p1和pn为端点的线段构成的下边界,以及由多条线段构成的上边界,这条上边界称为上包。类似地,S2中的多条线段构成的下边界称为下包。整个集合S的凸包是由上包和下包构成的。 快包的思想是:集合S1的上包 首先找到S1中的顶点pmax,它是距离直线p1pn最远的顶点,则三角形pmaxp1pn的面积最大。 S1中所有在直线pmaxp1左侧的点构成集合S1,1 S1中所有在直线pmaxpn右侧的点构成集合S1,2 包含在三角形pmaxp1pn之中的点可以不考虑了。 递归地继续构造集合S1,1的上包和集合S1,2的上包, 将求解过程中得到的所有最远距离的点连接起来,就可以得到集合S1的上包。 * 分析算法的时间性能,迭代处理的循环体内部有3个循环语句,每个循环语句都是一个嵌套的for循环,且他们的执行次数相同,基本语句是最内层循环体的赋值语句,即填写比赛日程表中的元素。基本语句的执行次数是: 所以,其时间复杂性为O(4k)。 * 问题提出: 给定由n个整数(可能为负数)组成的序列:a1,a2,…,an,求该序列的最大子段和。当所有整数均为负数,定义其最大子段和为0。依其定义,所求的最优值为: 最大子段和问题 * 最大子段和问题的分治策略 划分: 按照平衡子问题的原则,将序列(a1, a2, …, an)划分成长度相同的两个子序列(a1, …, an/2)和(an/2+1, …, an) ; 求解子问题: 合并: 比较在划分阶段的三种情况下的最大子段和,取三者之中的大者为原问题的解。 最大子段和问题 * aleft … … ai … acenter acenter+1… aj … … aright leftsum max{leftsum,sum, rightsum} 最大子段和问题 sum aleft … … ai … acenter acenter+1… aj … … an
文档评论(0)