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]

See also #

sort

Fork me on GitHub