algs4js

0.0.9 • Public • Published

Algorithms and Data Structures with ES6

This repo contains basic algorithms and data structures implemented with ES6.

It provides the following features:

  • Basic Algorithms with Data Structures
  • Sorting: quicksort, mergesort, heapsort
  • Dynamic Programming: factorial, max sub array
  • Misc
    • String interview questions (reverse, palindrome)
    • Decimal-to-Roman-Numeral conversion
    • Chess knight shortest path
  • Code written in ES6
  • Babel transpiling through a simple gulp task
  • Linting with eslint using the AirBnB rules
  • Unit tests with mocha
  • Test coverage metrics with instanbul
  • Latest modules used for all dependencies, including babel v6
  • JSDoc style comments used to document the code

Functionality

Function Algorithm ES5 Requires ES6 Import
Sorting Quick Sort var QuickSort = require('algs4j').QuickSort import { QuickSort} from 'algs4j'
Sorting Merge Sort var MergeSort = require('algs4j').MergeSort import { MergeSort} from 'algs4j'
Sorting Heap Sort var HeapSort = require('algs4j').HeapSort import { HeapSort} from 'algs4j'
Dynamic Programming Factorial var Factorial = require('algs4j').Factorial import { Factorial} from 'algs4j'
Dynamic Programming Max Sub Array var MaxSubArray = require('algs4j').MaxSubArray import { MaxSubArray } from 'algs4j'
Misc String Algs Palindrome, Reverse var SimpleStringAlgs = require('algs4j').SimpleStringAlgs import { SimpleStringAlgs } from 'algs4j'
Misc Decimal to Roman Conversion var DecimalToRomanNumeral = require('algs4j').DecimalToRomanNumeral import { DecimalToRomanNumeral } from 'algs4j'
Misc Knight's Shortest Path Breadth First Search var KnightShortestPath = require('algs4j').KnightShortestPath import { KnightShortestPath } from 'algs4j'

Usage

import { QuickSort } from 'algs4j';
 
const arr = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1];
console.log(`Unsorted Arr: ${arr}`);
QuickSort.sort(arr);
console.log(`Sorted Arr: ${arr}`);
// arr is now [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Package Sidebar

Install

npm i algs4js

Weekly Downloads

1

Version

0.0.9

License

MIT

Last publish

Collaborators

  • digibrady