算法分析与设计AlgoDALectureNotesW5章节.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Last Section Divide and Conquer MINMAX: 2n – 2 vs. 3n/2 – 2 二分有哪些信誉好的足球投注网站: 算法BINARYSEARCHREC在n 个元素组成的已排序数组中有哪些信誉好的足球投注网站某个元素所执行的元素比较次数不超过 ; 非递归; 合并排序: nlogn 寻找第 k 小元素:20cn 划分算法与快速排序:n-1 Divide and Conquer 大整数乘法: n log 3 ≈ n1.59 矩阵乘法与STRASSEN 算法:nlog7 ≈ n2.81 最近点对:nlgn 凸包:nlgn,n2 最近点对 T(n)=1 若n=2 =3 若n=3 =2T(n/2)+ Θ(n) 若n3 Θ(nlgn) Code 最近点对 T(n)=1 若n=2 =3 若n=3 =2T(n/2)+ Θ(n) 若n3 Θ(nlgn) 蛮力 DC 凸包(快包) Average: Θ(nlgn) Worst: Θ(n^2) Brute Force 根据(x1,y1), (x2,y2)的直线方程 (y2-y1)x+(x1-x2)y=(x1y2-y1x2) n(n-1)/2, n-2, n3 Decrease and Conquer 减 治 减 治 减治技术利用了一种关系: 一个问题给定实例的解和同样问题较小实例的解之间的关系。 一旦建立了这样一种关系,我们既可以递归地,也可以非递归地地来运用减治技术。 减治法有3种主要的变种: 减去一个常量 (decrease by a constant) 减去一个常数因子(decrease by a constant factor) 减去的规模是可变的(variable size decrease) Decrease by a constant 在减常量变种中,每次算法迭代总是从实例规模中减去一个规模相同的常量。经常地,这个常量等于一。 函数f(n) = an可以用一递归定义来计算 f(n) = f (n-1) *a 如果n 1 = a 如果n = 1 *和蛮力法是一样的效率? 得出这个做法的思想过程是不同的 Decrease by a constant factor 减常因子技术意味着在算法的每次迭代中,总是从实例的规模中减去一个相同的常数因子。在多数应用中,这样的常数因子等于二。 计算an的值是规模为n的实例; 规模减半(常数因子等于二)的实例计算就是an/2 的值; 它们之间有着明显的关系: an = (an/2)2。 Decrease by a constant factor an = (an/2)2 n是偶数 = (a(n-1)/2)2 a n是大于1的奇数 = a n = 1 上式递归根据所做的乘法次数来度量效率,该算法属于O (log n); 因为,每次迭代的时候,以不超过两次乘法为代价,问题的规模至少会减小一半。 Decrease by a constant factor 该算法和基于分治思想的算法有所不同: 分治算法对两个规模为n/2的指数问题实例分别求解: an =  如果n1 = a 如果n = 1 O(n) Variable size decrease 在减治法的减可变规模变种中,算法在每次迭代时,规模减小的模式都是不同的。 欧几里德算法: gcd (m,n) = gcd (n, m mod n) 欧几里德算法 Euclid (m,n) While n≠0 do r← m mod n m ← n n ← r return m m 和 n既不是以常数,也不是以常数因子的方式减小 插入排序 用减一技术来对一个数组A[0…n-1]排序 假设对较小数组A[0…n-2]排序的问题已经解决了,我们得到了一个大小为n-1的有序数组:A[0]≤…≤A [n-2]。 我们如何把这个较小规模的解和元素A[n-1]一同考虑, 来得到原问题的解呢? 显然,我们所要做的就是在这些有序的元素中为A[n-1]找到一个合适的位置, 然后把它插入到那里。 插入排序 InsertionSort(A[0…n-1]) //输入:n个可排序元素构成的一个数组A[0…n-1] //输出:非降序排序的数组A[0…n-1] for i ← 1 to n-1 do w ← A[i] j ← i-1 While j ≥ 0 and A[j] w do A[j+1] ← A[j] j ← j-1 A[j+1] ← w 插入排序 最坏输入是一个严格递减的数组

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档