An implementation of John von Neumann's sorted arrays in JavaScript. Implements insertion sort and binary search for fast insertion and deletion.
JavaScript
Latest commit 7de68e3 Jan 17, 2015 @aaditmshah aaditmshah Fixed #3.
Permalink
Failed to load latest commit information.
LICENSE first commit May 1, 2013
README.md Fixed #2. Jan 16, 2015
component.json Fixed #3. Jan 17, 2015
package.json Fixed #3. Jan 17, 2015
sorted-array.js Fixed #3. Jan 17, 2015

README.md

Sorted Array

An implementation of John von Neumann's sorted arrays in JavaScript. Implements insertion sort and binary search for fast insertion and deletion.

Installation

Sorted arrays may be installed on node.js via the node package manager using the command npm install sorted-array.

You may also install it on RingoJS using the command ringo-admin install javascript/sorted-array.

You may install it as a component for web apps using the command component install javascript/sorted-array.

Usage

The six line tutorial on sorted arrays:

var SortedArray = require("sorted-array");
var sorted = new SortedArray([3, 1, 5, 2, 4]);
console.dir(sorted.array);                     // [1, 2, 3, 4, 5]
sorted.search(3);                              // 2
sorted.remove(3);                              // [1, 2, 4, 5]
sorted.insert(3);                              // [1, 2, 3, 4, 5]

You may pass an optional compare function as a second argument to the SortedArray constructor.

You may also use the SortedArray.comparing(property, array) factory function to create a new SortedArray which compares values by their property. For example, to compare arrays by length:

var SortedArray = require("sorted-array");
var sorted = SortedArray.comparing(length, [[3,3,3], [1], [5,5,5,5,5], [2,2], [4,4,4,4]]);
console.dir(sorted.array);              // [[1], [2,2], [3,3,3], [4,4,4,4], [5,5,5,5,5]]

function length(a) {
    return a.length;
}