4

是否有一个现成的等效numpy.partition于 JavaScript,通过库或内置?

似乎没有任何流行的相关库(例如underscore.js )提供这样的功能。我之所以问,是因为我希望能够n在一般情况下找到数组中最高(或最低)的元素,而不必自己实现快速选择内推

在 index 处对数组进行分区会n重新排列数组,以便 at 的元素n按排序顺序排列,并且索引大于 的所有元素n都大于 at 的元素n。或者,索引小于的元素n都可以小于 的元素n。无论哪种方式,它都是一种部分排序,可以保证特定元素的位置以及它上面和下面的元素的分布。

完全排序当然满足相同的条件,但会O(n log n)及时运行,而分区通常会O(n)及时运行(快速选择的平均情况,introselect 的最坏情况)。

jQuery 插件QuickSelect做了一些完全不同的事情,尽管这个名字很有希望。

这个问题的部分动机:可能使用 Math.min 从数组中获取第二小的数字?

4

1 回答 1

1

包做快速选择。

Github

新PM

(我从来没有使用过这个包,但从 README 来看,它似乎是 OP 正在寻找的东西)

于 2017-11-16T21:33:45.647 回答