Function partitionSelect #
Partition-based selection of an array or 1D matrix. Will find the kth smallest value, and mutates the input array. Uses Quickselect.
Syntax #
math.partitionSelect(x, k)
math.partitionSelect(x, k, compare)
Parameters #
Parameter | Type | Description |
---|---|---|
x |
Matrix | Array | A one dimensional matrix or array to sort |
k |
Number | The kth smallest value to be retrieved zero-based index |
compare |
Function | ‘asc’ | ‘desc’ | An optional comparator function. The function is called as compare(a, b) , and must return 1 when a > b, -1 when a < b, and 0 when a == b. Default value: ‘asc’. |
Returns #
Type | Description |
---|---|
* | Returns the kth lowest value. |
Throws #
Type | Description —- | ———–
Examples #
math.partitionSelect([5, 10, 1], 2) // returns 10
math.partitionSelect(['C', 'B', 'A', 'D'], 1, math.compareText) // returns 'B'
function sortByLength (a, b) {
return a.length - b.length
}
math.partitionSelect(['Langdon', 'Tom', 'Sara'], 2, sortByLength) // returns 'Langdon'
// the input array is mutated
arr = [5, 2, 1]
math.partitionSelect(arr, 0) // returns 1, arr is now: [1, 2, 5]
math.partitionSelect(arr, 1, 'desc') // returns 2, arr is now: [5, 2, 1]