Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mikolalysenko/range-minimum-query
Preprocess an array to find the smallest element in any given interval in O(1)
https://github.com/mikolalysenko/range-minimum-query
Last synced: about 2 months ago
JSON representation
Preprocess an array to find the smallest element in any given interval in O(1)
- Host: GitHub
- URL: https://github.com/mikolalysenko/range-minimum-query
- Owner: mikolalysenko
- License: mit
- Created: 2014-03-28T21:04:47.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2014-03-29T14:22:40.000Z (over 10 years ago)
- Last Synced: 2024-10-21T01:36:19.365Z (2 months ago)
- Language: JavaScript
- Size: 137 KB
- Stars: 3
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
range-minimum-query
===================
Given an array of elements, preprocess the array so that range minimum queries can be computed in constant time.# Example
```javascript
var array = [9, 3, 7, 1, 8, 12, 10, 20, 15, 18, 5]
var rmq = require("range-minimum-query")(array)console.log(rmq(-Infinity, Infinity), rmq(0, 3))
```Output:
```javascript
3 1
```# Install
```
npm install range-minimum-query
```# API
### `var rmq = require("range-minimum-query")(array[,compare])`
Preprocess `array` for fast range minimum queries* `array` is an array of objects
* `compare` is an optional comparison function determining an ordering on `array`**Returns** A function `rmq` for answering range minimum queries on `array`
### `rmq(lo, hi)`
Finds the index of the smallest element in the range `[lo,hi)` in `array`* `lo` is the start index of the bounds
* `hi` is the end index of the bounds (non-inclusive)**Returns** The index of the smallest element in the range `[lo, hi)` in `array`
# Credits
(c) 2014 Mikola Lysenko. MIT License