Median
Computes the median of an array.
Installation
$ npm install compute-median
For use in the browser, use browserify.
Usage
var median = ;
median( arr[, options] )
Computes the median of an array
. For unsorted primitive number arrays
,
var unsorted = 5 3 2 4 ;var m1 = ;// returns 3.5
The function accepts two options
:
sorted
:boolean
flag indicating if the inputarray
is sorted in ascending order. Default:false
.accessor
: accessorfunction
for accessing values in objectarrays
.
If the input array
is already sorted in ascending order, set the sorted
option to true
.
var sorted = 2 3 4 5 ;var m2 =;// returns 3.5
For object arrays
, provide an accessor function
for accessing numeric array
values
var data =15334254;{return d 1 ;}var m3 =;// returns 3.5
Note: if provided an empty array
, the function returns null
.
Examples
var median = ;var data = 1001 ;for var i = 0; i < datalength; i++data i = Math;console;
To run the example code from the top-level application directory,
$ node ./examples/index.js
Notes
For an input array
of length N
,
- if provided a sorted (in ascending order) numeric
array
, the function isO(1)
. - if provided a sorted object
array
, the function isO(N)
. - if provided an unsorted numeric
array
, the function isO( N log(N) )
. - if provided an unsorted object
array
, the function isO( N + N log(N) )
.
Tests
Unit
Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make test
All new feature development should have corresponding unit tests to validate correct functionality.
Test Coverage
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-cov
Istanbul creates a ./reports/coverage
directory. To access an HTML version of the report,
$ make view-cov
License
Copyright
Copyright © 2014-2015. Athan Reines.