divide-and-conquer

    0热度

    2回答

    我在尝试使用分而治之的算法时遇到问题。 鉴于未排序阵列Ťv []发现DE v [k]的该数组的元件如同阵列排序但不排数组v。 例如,如果K = 3和V = {2,-1,-6,7,4}该数组的第k元素为。 由于我不能编辑传递的数组,我想不出另一种方式来排序数组而不保存在另一个局部变量上,或者尝试像快速排序一样分割数组,并返回最后一个元素的位置v应该是。 如果有帮助,这是我的代码: public st

    1热度

    1回答

    我想在数组中找到一个“峰值”(a1 ai + 1> ...> an的值,这里ai是峰值)。我在这里使用分治法来获得更优化的解决方案。对于“6 1 3 50 70 100 48”,它会打印出好的“70 100 48 4”(70 < 100和100> 48),但它不返回Integer.toString(a [m]),它返回“阵列没有高峰“。我试图删除字符串和int工作,但我得到完全相同的问题。 pub

    1热度

    3回答

    将两个排序的连续数组数组合并到一个数组中。 这两个阵列都有不同的数字。 ex : {1, 2, 3, 4, 5, 6, 7, 8, 9} and {10, 11, 12, 13, 14} int[] resultArr = {10, 11, 12, 13, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9}; ^ 查找起点索引的算法。如果我们把它当作循

    0热度

    1回答

    我试图使用mergesort对数组的索引进行排序。 mergesort完美地工作,最终的答案是完全正确的,但我不确定为什么索引不能在正确的位置上工作。我不想对数组排序,我想要做的就是对索引列表perm []数组进行排序。 为了避免混乱,下面有一个例子: 烫发数组保持原始数组NUMS []的初始索引(即,0至nums.length - 1) 我要移动的索引烫发阵列中基于nums []数组中的数据,以

    0热度

    1回答

    我一直在研究和尝试解决3SAT使用蛮力和N.D.M,但不能这样做。任何人都可以向我详细解释这些,并告诉我使用蛮力和N.D.M解决3SAT的基本算法?谢谢

    2热度

    1回答

    我给出了一个具有不同元素的排序数组。 返回true if A[i] = i else return false; 我需要的只是返回true或false,而不是位置。 我已经实现了代码,但有一些小错误。 private static boolean find(int[] a, int low, int high) { System.out.println(Arrays.toStrin

    0热度

    2回答

    #include <stdio.h> #include<string.h> int find(char a[],int p,int q,char t){ int l=strlen(a); int k,m,n; if(p==q){ if(a[0]==t)return 1; else return 0;} if(p<q){ int mid=p+q/2;

    1热度

    1回答

    我似乎无法弄清楚为什么我在下面突出显示的行上编译时出现错误消息。该错误信息是“ValueError异常:需要比2点的值更解压” ...预先感谢您的帮助 def divConHelper(array, first, center, last): sumRight = float('-inf') #assign impossibly low number sumLeft = flo

    0热度

    1回答

    这是理解分而治之算法的练习题。 给出一个N个排序整数的数组。除了一个 元素重复两次以外,所有元素都是不同的。设计一个O(log N)算法来查找该元素。 我相信,我得到的数组需要被分割,看看是否在下一个索引中找到了相等的对应元素,这是二进制搜索的一些变体。但我找不到任何解决方案或指导。

    0热度

    1回答

    所以我花了相当多的时间努力去理解我的代码有什么问题。我有一个例子程序,我比较了我的工作。我的代码的结构不同(按照我的教授的要求,所有代码均采用一种方法)而不是示例(使用两种方法)。我应该创建一个递归的分而治之的解决方案来计算int数组中的倒数。 我迷失了为什么示例程序在整个递归过程中保持对输入数组的操作,而我却没有。我知道Java是通过价值的,所以我很困惑为什么这个例子有效。任何帮助我了解这些解决