divide-and-conquer

    5热度

    4回答

    给出一个数组,使得元素的值从第0个索引增加到某个索引( -1)。在k该值是最小值,并且通过 n th元素再次开始增加。找到最小元素。 基本上,它的一个排序列表附加到另一个;例如:(1,2,3,4,,1,2,3)。 我尝试了各种各样的算法,如建立最小堆,快速选择或只是普通遍历。但不能得到它低于O(n)。但是这个数组中有一个模式,这意味着二进制搜索类型应该是可能的,而复杂性应该是类似于O(log n)

    6热度

    1回答

    以下问题是从Problems on Algorithms采取(问题653): 您正在给定数字的正×2矩阵。找到一个O(n log n)算法,用于对数组中的行进行置换,使得数组的两列均不包含比⌈ √ n更长的递增子序列(可能不包含连续数组元素)。 ⌉ 我不知道如何解决这个问题。我认为它可能会使用某种分而治之的复发,但我似乎无法找到一个。 有没有人有任何想法如何解决这个问题?

    1热度

    1回答

    我们想要在会议研讨会上展示新的JDK7叉/连接框架。为此,我们正在寻找一个有趣的例子,该框架可以做些什么。 有一些明显的例如排序或矩阵计算,但有更多有趣的人喜欢工作。例如,我们在java网站上发现了图像模糊,或者可能是天气预报或类似的东西? 如果域名不是太复杂,那么这些问题可以在几天内解决。 任何输入,非常感谢。任何想法或经验?

    4热度

    1回答

    我正在学习数据结构和算法。我提到的这本书(塞奇威克)使用“找到最大元素”来说明分而治之策略。该算法在中途将一个数组分为两部分,在两部分中递归地查找最大元素,并返回两个中较大的一个作为整个数组的最大元素。 的下面是一个锻练问题问 修改分而治之程序用于在阵列发现的最大元素(程序5.6)来划分大小为N的阵列划分成大小为k的一个部分= 2 ^(lg N - 1),另一个大小为N - k(这样至少有一个部分

    2热度

    3回答

    或许让我说出我的伪C++的情况 - 先代码: std:vector<double> sample(someFunctor f, double lower, double upper) { double t = (lower + upper)/2; double newval = f(t); if (f(upper) - newval > epsilon)

    2热度

    1回答

    我解决一个练习测验分而治之算法的部分和整个以下问题 写下对应下面鸿沟复发而治之算法来,精确地标记每个组成部分:划分,征服和组合。 1. Foo (p, r): 2. if p = r 3. return (1) 4. else 5. s ← 1 6. for i = p to r 7. s ← s * i 8. q ← Foo(p, r − 1) * s

    8热度

    6回答

    我不知道分而治之的技巧是否总是将一个问题分解成同一类型的子问题?同样的类型,我的意思是可以使用递归函数来实现它。分而治之总是可以通过递归来实现吗? 谢谢!

    0热度

    2回答

    如何使用分而治之算法来查找数组中的至少一半对象是否返回true(在某些函数上)?这些对象没有可枚举的值,因此对象A绝不会大于对象B. 要澄清,使用该函数将所有对象相互比较。所以功能(Obj a,Obj b)根据一些标准返回true或false。它们可以组合在一起,我们只是想知道至少一半的比较对象是否回复真实。

    1热度

    1回答

    即时尝试从客户端发送到服务器的unix命令,等待服务器执行它,然后将结果返回给客户端。 我设法让连接工作,但我不知道如何继续。这是甚至我应该去的方向? #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #define MAXLINE 1024 int main(void)