common-algorithms
A npm module containing the common searching and sorting algorithms
Last updated a year ago by vidovitsch .
ISC · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install common-algorithms 
SYNC missed versions from official npm registry.

Common algorithms

CircleCI Coverage Status

A small module that contains the most common sorting and searching algorithms.

Installation

npm install --save common-algorithms

Contents

Algorithms Type O (time) Θ (time) Ω (time) O (space)
Selection Sort Sort n2 n2 n2 1
Insertion Sort Sort n2 n2 n 1
Quick Sort Sort n2 n * log2(n) n * log2(n) log2(n)
Merge Sort Sort n * log2(n) n * log2(n) n * log2(n) n
Heap Sort Sort n * log2(n) n * log2(n) n * log2(n) 1
Shell Sort Sort n * log2(n)2 n * log2(n)2 n * log2(n) 1
Shuffle (Fisher–Yates) Sort n n n 1
Binary Search Search log2(n) log2(n) 1 1

Usage

Using require()

const algorithms = require('common-algorithms')

Using ES6 Import/Export

import * as algorithms from 'common-algorithms'

Exports

The module exports the following object:

{
  search: {
    binarySearch <Function>,
  },
  sort: {
    heapSort <Function>,
    insertionSort <Function>,
    mergeSort <Function>,
    quickSort <Function>,
    selectionSort <Function>,
    shellSort <Function>,
    shuffle <Function>,
  },
}

Custom comparator

A custom comparator can be given as a parameter.

Example 1:

const { quickSort } = require('common-algorithms').sort

const arr = [12, 0, -23, 4, 6, 14, 102, -5];

quickSort(arr, (a, b) => {
  if (a < b) return 1;
  if (a > b) return -1;
  return 0
});

Example 2:

const { quickSort } = require('common-algorithms').sort

function SomeObj(value) {
  this.value = value;
}
        
const arr = [new SomeObj(5), new SomeObj(-5), new SomeObj(-22), new SomeObj(108), new SomeObj(37)];

quickSort(arr, (a, b) => {
  if (a.value < b.value) return -1;
  if (a.value > b.value) return 1;
  return 0;
});

Current Tags

  • 1.0.1                                ...           latest (a year ago)

2 Versions

  • 1.0.1                                ...           a year ago
  • 1.0.0                                ...           a year ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 2
Dependencies (0)
None
Dev Dependencies (8)
Dependents (0)
None

Copyright 2014 - 2017 © taobao.org |