1.0.2 • Published 9 years ago

shellsort v1.0.2

Weekly downloads
4
License
MIT
Repository
github
Last release
9 years ago

NPM version Build Status Dependency Status

Shellsort

Shellsort implementation wth O(n^3/2) complexity based on JavaScript Algorithms.

Shellsort, also known as Shell sort or Shell's method, is an in-place comparison sort. It can be seen as either a generalization of sorting by exchange (bubble sort) or sorting by insertion (insertion sort).1 The method starts by sorting pairs of elements far apart from each other, then progressively reducing the gap between elements to be compared.

Install

$ npm install --save shellsort

Usage

var shellsort = require('shellsort');

// Ascending order

shellsort([3,1,4,1,5,9,2,6,5,4]);
// => [1,1,2,3,4,4,5,5,6,9]

shellsort([9,2,8,6,1,3]);
// => [1,2,3,6,8,9]

shellsort([5,2,4,6,1,3]);
// => [1,2,3,4,5,6]

// Descending order

function comparator(a, b) { return b - a; }

shellsort([5,2,2,6,1,3], comparator);
// => [6,5,3,2,2,1]

shellsort([0,0,0,0,0,-1], comparator);
// => [0,0,0,0,0,-1]

// Ascending sort arrays of objects

var people = [
  {name: 'Sindre', age: 30, place: 2},
  {name: 'Passy', age: 25, place: 1},
  {name: 'Stephen', age: 40, place: 4},
  {name: 'Matt', age: 35, place: 3}
];

function comparePeople(a, b) { return a.age - b.age };

shellsort(people, comparePeople);
/*
=> [
  {"name": 'Passy', "age": 25, "place": 1},
  {"name": 'Sindre', "age": 30, "place": 2},
  {"name": 'Matt', "age": 35, "place": 3},
  {"name": 'Stephen', "age": 40, "place": 4}
]
*/

License

MIT © Tejas Manohar