median-of-medians

    0热度

    1回答

    我想找到没有排序的列表中位数约约中位数,我知道两算法 算法1 quickselect 算法的2-位数的中位数 我不能使用快速选择我的项目,因为它在最坏的情况下需要O(n^2)。 我听说过中位数的中位数,但是我的同事们建议它用一些常数因子来处理O(n)。因此它的时间复杂度是Cn,常数因子与快速选择相比是大的。我想知道与中位数中位数相关的常数因子是什么?以及为什么中位数中位数不使用9位元的中位数? 还

    0热度

    1回答

    我有一个未排序阵列大小Ñ的和我需要找到k-1个除数所以每子集是相同的尺寸(如数组进行排序之后) 。 我看过这个问题k-1 = 3。我想我需要中位数的中位数,这将需要o(n)。但我认为我们应该这样做k次所以o(nk)。 我想了解为什么需要o(n logk)。 例如:我有一个整数未排序的数组,我想要找到第k个整数,将数组按照它们的值拆分成k个(相同大小)子排列的第n个整数。 如果我有[1, 13, 6

    0热度

    1回答

    的我知道线性选择(中位数算法的中位数)复发公式如下: T(n) <= an + T(n/5) + T(7n/10) 但是,在将这些术语从何而来?我一直在努力去理解,但我非常困惑。任何人都可以摆脱一些光?

    2热度

    1回答

    我使用Medians Medians实现了第n个数字选择算法。 在wikipedia,它声明它的空间复杂度是O(1) 我不得不将中位数存储在一个临时数组中以便在这些中位数之间找到中位数。你如何能够做到这一点,而不使用任何额外的内存?如果不算增加其空间复杂性,请解释一下。 function nth_number(v, n) { var start = 0; var end = v

    0热度

    1回答

    我正在实现一个使用中位数枢轴方法的select-kth算法。具体来说,我遵循pseudocode listed here.。然而,我的代码崩溃(下面讨论的错误),我明白为什么它崩溃,但我不明白我能做些什么。 的错误 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 32017219 at Selection.

    -1热度

    1回答

    我发现在C算法++这里 https://gist.github.com/andlima/1774060 的实现,但我不明白的几行的目的以及它们如何工作, 我应该添加一个if语句如果n低于一定数量,我们应该排序一个数组并返回v [k]? 在第四行中,为什么我们通过增加4来创建一个变量?我知道我们必须将它除以5才能获得一定数量的阵列 什么是6线负责的“for循环”?是否将主阵列拆分为我们想要排序的较小

    3热度

    2回答

    首先,我只是想说明这是一个我已经做了大量尝试的作业问题。 我被要求来修改快速排序中的Java设置枢轴为使用下式​​ 我写一个computeMedian方法,该方法接受3点的整数数组中的9个值的伪中间值,确定最高的,然后返回该值。 的代码: public static int computeMedian(int x, int y, int z) { if((x >= y &&

    2热度

    1回答

    给定N位8位数(数值0-255)的数组? 如何找到中位数? 我已经尝试了基数排序和中位数的中位数算法。 考虑到数字的值在0到255之间,还有更好的方法吗?

    7热度

    2回答

    下面是我的代码试图了解中位数算法的中位数(使用5号块)。我知道如何获得输入的中位数,但我不知道如何编码该块来继续递归输入,直到我拥有中位数。然后,在获得中位数后,我不确定如何将其用作关键点来丢弃无用的信息以对输入进行分区。 getMediansArray返回大小为数组的数组(输入长度​​为5),而getMedians仅返回数组中的中值(仅用于长度为< = 5的数组)。 public static

    0热度

    1回答

    中位数quicksort的中位数的最坏情况时间复杂度是什么(数据的中位数取决于需要O(n)时间才能找到的中位数)?