JavaScript中的numpy.partition

JavaScript中的numpy.partition,javascript,numpy,quickselect,Javascript,Numpy,Quickselect,通过库或内置的JavaScript中是否有现成的等价物 它似乎不像任何流行的相关库那样提供这样的功能。我这样问是因为我希望能够在一般情况下在数组中找到n最高(或最低)元素,而无需自己实现 在索引n处对数组进行分区会重新排列数组,以便n处的元素按排序顺序排列,并且索引大于n的所有元素都大于n处的元素。或者,索引小于n的元素都可以小于n的元素。无论哪种方式,它都是一种局部排序,可以保证特定元素的位置以及元素上下的分布 当然,完整排序满足相同的条件,但在O(n log n)时间内运行,而分区通常在O(

通过库或内置的JavaScript中是否有现成的等价物

它似乎不像任何流行的相关库那样提供这样的功能。我这样问是因为我希望能够在一般情况下在数组中找到
n
最高(或最低)元素,而无需自己实现

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

当然,完整排序满足相同的条件,但在
O(n log n)
时间内运行,而分区通常在
O(n)
时间内运行(quickselect的平均情况,introselect的最坏情况)

jQuery插件做了一些完全不同的事情,尽管名字很有前途


这个问题的部分动机是:

打包做quickselect


(我从未使用过这个软件包,但从自述文件来看,它似乎就是OP想要的)

您可能想解释一下分区的作用,以使不使用numpy的javascript专家受益。我没怎么用过它,但我的印象是它是一种不完整的类型。理论​ 可能大家都知道,但我还没有在其他语言中见过它。@hpaulj。不仅仅是“我想在一个数组中找到n个最高(或最低)的元素,用于一般情况”?这个问题是,也应该是这样结束的。@ZZBOV如果你能推荐一个合适的论坛,我很乐意在别处问这个问题。@MadPhysician可能会在聊天中得到合理的回答,或者至少在讨论到哪里去看时得到合理的回答。因此,对于“我应该使用什么(哪个)(插件库框架)来解决[问题]?”式的问题,并没有一个很好的解决方案。他们往往过于依赖意见,往往只是被踢到场外。这正是OP所寻求的。谢谢