是否有一个现成的等效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 从数组中获取第二小的数字?