Sha256: 2beb2ed4771253e5075963ebd80c527fd3c0d9eafd14605b84c6194b69a7f0df
Contents?: true
Size: 918 Bytes
Versions: 1
Compression:
Stored size: 918 Bytes
Contents
var heapselect = crossfilter.heapselect = heapselect_by(crossfilter_identity); heapselect.by = heapselect_by; function heapselect_by(f) { var heap = heap_by(f); // Returns a new array containing the top k elements in the array a[lo:hi]. // The returned array is not sorted, but maintains the heap property. If k is // greater than hi - lo, then fewer than k elements will be returned. The // order of elements in a is unchanged by this operation. function heapselect(a, lo, hi, k) { var queue = new Array(k = Math.min(hi - lo, k)), min, i, x, d; for (i = 0; i < k; ++i) queue[i] = a[lo++]; heap(queue, 0, k); if (lo < hi) { min = f(queue[0]); do { if (x = f(d = a[lo]) > min) { queue[0] = d; min = f(heap(queue, 0, k)[0]); } } while (++lo < hi); } return queue; } return heapselect; }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mdarray-sol-0.1.0-java | node_modules/dc/node_modules/crossfilter2/src/heapselect.js |