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;
});