QuickSelect.js
Implementation of the QuickSelect algorithm in Java for top-k computations
npm install
npm install qselect
code sample
var QuickSelect = require('qselect');
var array = [1,2,3,49,10,-1,-2]
var cmp = function(a,b){return a<b;};
var topk = QuickSelect(array,2,cmp).slice(0,2);
var reversecmp = function(a,b){return a>b;};
var topk = QuickSelect(array,2,reversecmp).slice(0,2);
When calling QuickSelect on an array larger than k, the value at index k after calling QuickSelect acts
as a pivot. This means that no value with index less than k can be larger than the pivot, and no
value with index larger than k can be smaller than the pivot.
Credit
Inspired by a code sample from Anno Langen.