网站大量收购独家精品文档,联系QQ:2885784924

3.2.分治策略的设计思想.pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分治策略 的设计思想 分治策略的基本思想 分治策略(Divide and Conquer ) 1. 将原始问题划分或者归结为规模较 小的子问题 1. 递归或迭代求解每个子问题 2. 将子问题的解综合得到原问题的解 注意: 1. 子问题与原始问题性质完全一样 2. 子问题之间可彼此独立地求解 3. 递归停止时子问题可直接求解 2 二分检索 算法 Binary Search (T, l, r, x) 输入:数组T,下标从l 到r ;数x 输出:j // 若x在T 中,j 为下标; 否则为0 1. l1; rn 2. while lr do 3. m(l +r)/2 // m为中间位置 4. if T[m]=x then return m // x 是中位数 5. else if T[m]x then rm1 6. else lm+1 7. return 0 3 二分检索算法设计思想 • 通过x 与中位数的比较,将原问题归结 为规模减半的子问题,如果x 小于中位 数,则子问题由小于x 的数构成,否则 子问题由大于x 的数构成. • 对子问题进行二分检索. • 当子问题规模为1 时,直接比较x 与 T[m],若相等则返回m ,否则返回0. 是否能够递归实现? 4 二分检索时间复杂度分析 二分检索问题最坏情况下时间复杂度 W(n) = W( n/2 )+1 W(1) = 1 可以解出 可以解出 W (n) = log n+1. W(n)= logn + 1 5 二分归并排序 算法 Merge Sort (A , p , r) 输入:数组 A [p .. r] 输出:元素按从小到大排序的数组A 1. if p r 2. then q  ( p + r )/2 对半划分 3. Merge Sort (A, p, q) 子问题1 4. Merge Sort (A, q+1, r) 子问题2 5. Merge (A, p, q, r) 综合解 6 二分归并排序设计思想 • 划分将原问题归结为规模为n/2 的 2 个子问题 • 继续划分,将原问题归结为规模为 n/4 的4 个子问题. 继续...,当子问 题规模为1 时,划分结束. • 从规模1到n/2 ,陆续归并被排好 序的两个子数组. 每归并一次,数 组规模扩大一倍,直到原始数组. 7 二分归并排序时 间复杂度分析 假设n为2 的幂,二分归并排序最坏 情况下时间复杂度 W(n) = 2 W(n/2) + n1 W(1) = 0

文档评论(0)

恬淡虚无 + 关注
实名认证
内容提供者

学高为师,身正为范.师者,传道授业解惑也。做一个有理想,有道德,有思想,有文化,有信念的人。 学无止境:活到老,学到老!有缘学习更多关注桃报:奉献教育,点店铺。

1亿VIP精品文档

相关文档