算法4_递推关系:分而治之.pptx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法4_递推关系:分而治之

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Multiplying binary numbers: Use Gauss’ trick! Now what is the recurrence relation? Running time? ;Given an input array of real numbers, we want to output the array in sorted order MergeSort idea: Split the array in half Sort each half Merge the two halves together ;;How do we merge?;What is the running time of this function?;What is the running time of MergeSort?;CircularShift problem Suppose you are given a sorted array S with no duplicate values that has been circularly shifted. For example: You don’t know how many positions it has been shifted by. Describe a log(n) algorithm to find the maximum value ;;Find the non-duplicate Given a sorted array S of integers. Each value present appears exactly twice in S, except for one (so if there are k distinct values, the length is 2k – 1). Find the non-duplicate value in better than O(logn) time. ;;The standard algorithm: What is the running time?;A more efficient method was discovered by Volker Strassen in 1969! What is the running time of this divide-and-conquer strategy? ;But it turns out that there is a way to decompose the problem into 7 subproblems, not 8! What is the running time?;MaxSubarraySum problem Given an array S with real numbers (some may be negative), find indices i, j with i j such that the sum of values S[i], …, S[j] is maximized Hint: how can you combine results from subarrays? ;;How do we find the median of an array? Sort the array; pick the midpoint What is the running time of this? But sorting does a lot of extra work… can we do better?;Let’s define a more general problem: given an array S, find the kth smallest value of the array A divide-and-conquer solution to the above problem: Pick a value v from the array S Split S into three arrays: SL, Sv, and SR SL contains values smaller than v Sv contains values equal to v SR contains values greater than v ;Example: For a given v, what is the time required to perform this split?;From this split, how do we decide which arr

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档