问题标签 [divide-and-conquer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3693 浏览

algorithm - 分治算法用于在数组中查找峰值。

对于数组 a:a 1 , a 2 , ... a k , ... a n ,当且仅当 a k-1 ≤ a k ≥ a k+1当 1 < k 且 k < n 时, a k是一个峰值。如果a 1 ≥ a 2,a 1一个峰,如果a n-1 ≤ a n ,a n是一个峰。目标是从阵列中找到一个峰。

分治算法如下:

为什么这个算法是正确的?我认为它可能会因丢失存在峰值的阵列的一半而受到影响。

0 投票
1 回答
1057 浏览

algorithm - closest to zero [absolute value] sum of consecutive subsequence of a sequence of real values

this is an algorithmic playground for me! I've seen variations of this problem tackling maximum consecutive subsequence but this is another variation as well. the formal def: given A[1..n] find i and j so that abs(A[i]+A[i+1]+...+A[j]) is closest to zero among others.

I'm wondering how to get O(n log^2 n), or even O(n log n) solution.

0 投票
1 回答
1689 浏览

c++ - 返回排序数组中重复数字的计数的函数

我想返回排序数组中重复值的数量。

例如:a = { 1, 1, 2, 3, 4, 4 },fratelli(n) 应该返回 2。(它们是 1, 1 和 4, 4)

我尝试使用递归方法,但它不起作用。它总是给我4。

我在问是否有人可以帮助我更好地理解这种编程方法。非常感谢!

功能:

0 投票
1 回答
207 浏览

parallel-processing - Map Reduce 或其他分布式/并行设计模式?

我有这个代码可以连接/组合一组图像。我想将此顺序代码重组为并行/分布式应用程序,因为我的图像集合非常大(大数据:-))。我正在考虑使用 Map/Reduce,但不确定这在 Map/Reduce 下是否可行。

注意:顺序无所谓;组合图像 1,2,3,4,5 与组合图像 2,3,1,4,5 一样好。

理想情况下,我想要这样的东西(看起来更像是一个经典的 divide-et-impera 而不是 map/reduce ):

在此处输入图像描述

1,2,3,4 是原始图像。一个节点将图像#1 和图像#2 连接成一个称为图像#5 的新图像。第二个节点将图像#3 和图像#4 连接成图像#6,最后一个节点将图像#5 和图像#6 连接成最终结果。

关于我应该使用什么框架/并行或分布式设计模式来做这样的事情有什么想法吗?

干杯!!

0 投票
2 回答
1727 浏览

java - 分治矩阵乘法基本案例+如何将矩阵拆分为 4 个四分之一

我一直在尝试编写分治矩阵乘法算法

有一个问题,当我尝试将矩阵分成四个季度时,它给了我一个错误 ArrayOutOfIndexBound

  • 我不确定我对基本情况是否正确,所以你们能帮帮我吗?

我遇到的问题是double[][] a21

0 投票
2 回答
552 浏览

c++ - 分而治之真的能战胜增加的内存分配吗?

我刚刚完成了一些经典的分治算法的编码,我提出了以下问题:(更多出于好奇)

诚然,在很多情况下,分治算法比传统算法更快;例如,在快速傅里叶变换中,它将复杂度从 N^2 提高到 Nlog2N。但是通过编码,我发现,因为“划分”,我们有更多的子问题,这意味着我们必须创建更多的容器,并在子问题上额外分配更多的内存。想想看,在归并排序中,我们必须在每次递归中创建左右数组,而在快速傅里叶变换中,我们必须在每次递归中创建奇数和偶数数组。这意味着,我们必须在算法期间分配更多的内存。

所以,我的问题是,在现实中,比如在 C++ 中,当我们还必须增加内存分配的复杂性时,像分治法这样的算法真的会赢吗?(或者内存分配根本不需要运行时间,而且成本为零?)

谢谢你的协助!

0 投票
3 回答
4550 浏览

algorithm - 动态规划与分而治之的区别

分而治之和动态规划之间的主要区别是什么?如果我们举个例子,归并排序基本上是通过使用递归的分而治之来解决的。动态编程也基于递归而不是合并排序为什么不被认为是动态编程的一个例子?

0 投票
1 回答
421 浏览

c++ - 快速排序实现错误

我试图实现快速排序。但是控件似乎永远不会退出快速排序功能。任何帮助将非常感激。

几点建议:

  1. 我使用第一个元素作为枢轴。我知道存在更好、更有效的技术来选择支点,但这不是关于那个。

2.分区函数中的'k'变量是枢轴元素。

据我所知,问题出在分区函数上,因为我已经尝试过多次调试它。

此外,这不是家庭作业问题。我在自己学习后尝试实现该算法。

在主要功能中,我尝试使用快速排序(0,n,a)和快速排序(0,n-1,a)。都没有奏效。

0 投票
2 回答
1072 浏览

c++ - 如何在 SPOJ Feynman 中应用动态规划?

我正在解决这个问题-> http://www.spoj.com/problems/SAMER08F/(一个非常简单的问题)......我第一次得到AC......我的解决方案是这样的(非常直截了当) :

我正在浏览这个列表http://ahmed-aly.com/Category.jsp?ID=33,我发现费曼被列为 DP 问题......我是 DP 的初学者,无法弄清楚这个问题是如何构成的的子问题。寻找递归关系的任何帮助或提示都将非常有帮助。

0 投票
2 回答
3610 浏览

algorithm - 分而治之和减法征服之间的区别?

我一直在阅读有关递归和求解递归方程的内容。遇到了一个术语“减法和征服”。它与“分而治之”技术有何不同。我可以使用用于求解分而治之递归方程的相同技术(如主定理或递归树)来解决这类问题吗?