divide-and-conquer

    -3热度

    1回答

    给定一个未排序的数组,查找最大值和最小值。我试图以递归,分而治之的方式来做到这一点,但我不断收到堆栈溢出错误。我调试,我不断收到我的递归调用中的错误,但不知道什么是错的或如何解决它。 我确实有最小和最大的静态变量。 感谢您的信息和帮助! static void findMaxMin(int[] array, int start, int end) { if (end == 2)

    -1热度

    1回答

    我正在处理一个非常具体的分而治之的算法,它总是将一个有n个元素的问题划分为n/2-1和n/2 + 1个元素的两个子问题。 我很确定时间复杂度仍然是O(n log n),但我不知道我怎么能正式证明它。

    0热度

    1回答

    我试图使用python实现与归并计数版本计数倒置,这里是我的代码: def merge(inLeft, inRight): inversions = 0; output = [] while 0 < len(inLeft) and 0 < len(inRight): if inLeft[0] < inRight[0]: output.append(in

    1热度

    1回答

    所以我试图打印最大总额以及其相应的子列表,但我无法弄清楚如何得到它的子列表。这里是我到目前为止的代码使用Python,只有返回最大总和: full = [7,-1,1,2,-8,1] indices = [] def sumHelper(listnum, a, z): if a == z: global indices return listnum[a]

    0热度

    2回答

    我想计算Θ() Given T (n) = T (n − 1) + n^3 我不能直接申请硕士定理规则,因为我不知道什么是B,所以如何导出Θ()?

    1热度

    1回答

    上下文:不同整数的数组A [1..n]被称为交换排序如果有一些k, 1≤k≤n,以便移动A的最后n-k个元素(按它们在A中出现的顺序)在A的前k个元素之前产生排序数组。 (请注意,不同整数的排序阵列是交换排序的: 需要k = n。)另外,交换排序的阵列必须位于增加顺序。 示例:[4,5,6,1,2,3] =>将[1,2,3]向前移动到[1,2,3,4,5,6],其中被认为是交换排序的。 (升序)

    0热度

    1回答

    我在查找OCaml中典型指数函数的更快版本时遇到了问题。这里有一些指引,我试图遵循: 不是的expt b n ==> b * (b * (b ...)典型的递归指数版本的函数接收两个参数B和N,基本上采取分而治之的立场。 如果n为偶数,则fastexpt b n => (b^(n/2))^2否则,如果n是奇数则fastexpt b n => b * (b^(n - 1)) 下面是我迄今编写的代码:

    1热度

    1回答

    我学习的分而治之在Coursera的算法,我也遇到过这样的复发关系: T(n) = T(n-√n)+1 答案给出的是: O(√n) 我已经学会了掌握方法和复发树分析,但我不知道如何分析这种复发的关系。 感谢您的帮助。

    0热度

    1回答

    我想创建一个分而治之的算法,当在二叉树的根上运行时,返回树中或其他树中包含的最大平衡二进制子树的大小单词,可能叶子都在同一深度的最大子树的大小。

    0热度

    2回答

    我非常困惑。 一个测验题是“真或假,快速排序实现在算法的征服阶段排序”因为我记得读我选择了正确的: 三个步骤快速排序如下: 除法:重新排列元素并将数组拆分为两个子数组和中间元素,以便左侧子数组中的每个元素小于或等于中间元素,并且右侧子数组中的每个元素都大于中间元素。 征服:对两个子阵列进行递归排序。 组合:无。 然而,答案的猜谜说,答案是没有任何解释假... 由于文字书说,快速排序如下分而治之算法