A small module that contains the most common sorting and searching algorithms.
npm install --save common-algorithms | 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 |
const algorithms = require('common-algorithms')import * as algorithms from 'common-algorithms'The module exports the following object:
{ search: { binarySearch <Function>, }, sort: { heapSort <Function>, insertionSort <Function>, mergeSort <Function>, quickSort <Function>, selectionSort <Function>, shellSort <Function>, shuffle <Function>, }, }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; });