【问题标题】:sums of two arrays using divide and conquer使用分而治之的两个数组的总和
【发布时间】:2016-01-20 21:11:53
【问题描述】:

这个问题需要分治法来找到C,两个n大小的数组A,B的和。例如,A = {1,3},B = {2,4},然后 C = {3,5,7}。

我们怎样才能以比暴力算法(本例中为 n^2)更快的方式找到 C?

【问题讨论】:

  • 欢迎来到 Stack Overflow。我们很乐意为您提供帮助。为了提高您获得答案的机会,以下是一些提示:How do I ask a good question?
  • 对数组求和的方式(每个可能的总和?),看起来在最坏的情况下,你的数组有 n^2 个元素

标签: divide-and-conquer


【解决方案1】:

分而治之的基本思想是将大问题分成若干小子问题。

在我们解决了每个子问题之后,原来的大问题就可以解决了。然而,在这个问题中,虽然我们可以使用分治法将第一个数组划分为基数为 1 的子数组,但我们仍然需要检查要放入输出数组的每对可能数据对的总和,即两个包含 {a,b,c,d}{e,f,g,h} 的数组,您仍然需要找到 ae,af,ag,ah,be,bf... 的总和。

因此,我认为蛮力的效率和分而治之的方法之间没有太大的区别,因为每个组合都必须检查任何一种方法。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-08
    • 2017-01-12
    • 2017-06-07
    • 2020-03-30
    • 2021-11-27
    • 2018-01-26
    • 2014-10-20
    • 2011-12-31
    相关资源
    最近更新 更多