1.1.8 • Published 3 years ago

algo-sorter v1.1.8

Weekly downloads
16
License
MIT
Repository
github
Last release
3 years ago

CircleCI

algoSorter

sort arrays using your algorithm of choice

  • Works with numeric arrays as well as arrays of objects
  • Compatible with Node.js, TypeScript, and the browser

Installation

with npm:

$ npm install algo-sorter

with yarn:

$ yarn add algo-sorter

Importing

// Using Node.js `require()`
const algoSorter = require('algo-sorter');

// Using ES6/TypeScript imports
import algoSorter from 'algo-sorter';

Import via script tag

<!DOCTYPE html>
<html>
  <head>
  </head>
  <body>
    <script src="https://unpkg.com/browse/algo-sorter@1.1.5/dist/"></script>
  </body>
</html>

Algorithms

comparison based algorithms:

  • bubble sort
  • insertion sort
  • selection sort
  • heap sort

divide and conqure algorithms:

  • quick sort
  • merge sort
  • counting sort

randomized algorithms

  • bogo sort

coming soon:

  • radix sort (coming soon)
  • bucket sort (coming soon)

API

bubble(arr[, sortKey])
insertion(arr[, sortKey])
selection(arr[, sortKey])
merge(arr[, sortKey])
heap(arr[, sortKey])
bogo(arr, [, sortKey])
counting(arr, [, sortKey])
parametertyperequireddefaultnotes
arrnumber[] or obj[]yes-A 1D array of numbers or an array of objects. If an array of objects is passed, a key must be provided.
sortKeystringno*-The key for the values that the array of objects will be sorted against
quick(array[, sortKey[, low [, high]]])
parametertyperequireddefaultnotes
arrnumber[] or obj[]yes-A 1D array of numbers or an array of objects. If an array of objects is passed, a key must be provided.
sortKeystringno*-The key for the values that the array of objects will be sorted against. If you want to configure the high and low sorting conditions for an array of numbers you must pass null.
lownumberno0The starting index.
highnumbernoarray.length - 1The ending index.

* required for arrays of objects only

Example implementation

import { bubble } from 'algo-sorter';

const myArray = [6, 10, 3];
const myArray2 = [{myKey: 6}, {myKey: 10}, {myKey: 3}];

bubble(myArray); // [3, 6, 10]
bubble(myArray2, 'myKey'); // [{myKey: 3}, {myKey: 6}, {myKey: 10}]

Testing locally

$ git clone https://github.com/lukehatcher/algo-sorter.git && cd algo-sorter && npm i && npm run test

Contributions and issues

Pull requests are welcome! Please include tests. Found an error or want to ask a question? Open an issue and/or visit the discussion boards!

todos

  • add more algos
  • improve api docs
  • create repo logo
  • add notes on time complexities
1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago