@jsundefined/algojs

1.2.0 • Public • Published

Algorithms:

This is js library for algorithms related to data structure. Till now we have published below algorthims.

Install:

npm i @jsundefined/algojs

How to use all methods through AlgoJS class:

let Algojs = require('@jsundefined/algojs');
let sortedArr = Algojs.bubbleSort([12, 11, 13, 5, 6, 7]);
console.log('bubbleSort', sortedArr);

Typescript / Angular:

import Algojs from '@jsundefined/algojs';
let sortedArr = Algojs.bubbleSort([12, 11, 13, 5, 6, 7]);
console.log('bubbleSort', sortedArr);

** Newest Addition in Library ::: String Operations **

String Methods:

  • capitalize
  • casefold
  • center
  • count
  • expandtabs
  • isUpperCase
  • isLowerCase
  • swapcase
  • toUpperFirstLetter
  • format
  • formatter
  • isPositive
  • returnSign
  • numberChangeWithChar
  • isAlnum
  • isDecimal
  • isAlpha
  • isDigit
  • isIdentifier
  • isSpace
  • unicodeToChar
  • binaryToDec
  • decToBinary
  • zfill
  • jsonCleaner

Matrix Methods:

  • add
  • sub
  • mult
  • transpose
  • isIdentityMatrix
  • isSparseMatrix
  • isEqual
  • getUpperTraingularMatrix
  • getLowerTraingularMatrix

Javascript:

let Matrix = require('@jsundefined/algojs/math/matrix');
const matrices1 = new Matrix([[1,1,1],[2,2,2],[3,3,3]]);
const matrices2 = new Matrix([[1,0,0],[0,1,0],[0,0,1]]);
const matrices3 = new Matrix([[1,0,0],[0,1,0],[0,0,1]]);
const matrices4 = new Matrix([[1,2],[3,4],[1,0]]);
const matrices5 = new Matrix([[0,5,2],[6,7,3]]);
console.log(matrices3.isIdentityMatrix(), 
matrices1.isIdentityMatrix(), matrices3.isSparseMatrix(), 
matrices1.isEqual(matrices3), matrices1.getLowerTraingularMatrix(),
 matrices1.getUpperTraingularMatrix(), matrices1.getTransposeMatrix(),
  matrices1.mult(matrices1), matrices4.kroneckerProduct(matrices5));

Typescript / Angular:

import Matrix from '@jsundefined/algojs/math/matrix';
const matrices1 = new Matrix([[1,1,1],[2,2,2],[3,3,3]]);
const matrices2 = new Matrix([[1,0,0],[0,1,0],[0,0,1]]);
const matrices3 = new Matrix([[1,0,0],[0,1,0],[0,0,1]]);
const matrices4 = new Matrix([[1,2],[3,4],[1,0]]);
const matrices5 = new Matrix([[0,5,2],[6,7,3]]);
console.log(matrices3.isIdentityMatrix(), 
matrices1.isIdentityMatrix(), matrices3.isSparseMatrix(), 
matrices1.isEqual(matrices3), matrices1.getLowerTraingularMatrix(),
 matrices1.getUpperTraingularMatrix(), matrices1.getTransposeMatrix(),
  matrices1.mult(matrices1), matrices4.kroneckerProduct(matrices5));

Sorting

  • Bead Sort, Bitonic Sort, Bogo Sort, Bubble Sort, Bucket Sort, Cocktail Sort, Comb Sort, Count Sort, Cycle Sort, Gnome Sort, Heap Sort, Insertion Sort, Merge Sort, Pancake Sort, Pigeonhole Sort, Quick Sort, Radix Sort, Selection Sort, Shell Sort, Sleep Sort, Stooge Sort, Strand Sort, Swap Sort, Tim Sort

How to use sort methods:

Javascript:

let bubbleSort = require('@jsundefined/algojs/sort/bubble.js');
let sortedArr = bubbleSort([12, 11, 13, 5, 6, 7]);
console.log('bubbleSort', sortedArr);

Typescript / Angular:

import bubbleSort from '@jsundefined/algojs/sort/bubble';
let sortedArr = bubbleSort([12, 11, 13, 5, 6, 7]);
console.log('bubbleSort', sortedArr);

Searching

  • Binary
  • Exponential
  • Fibonacci
  • Interpolation
  • Jump
  • Linear

How to use search methods:

Javascript:

let linearSearch = require('@jsundefined/algojs/search/linear.js');
let indexOfSearchResult = linearSearch([ -5, -10, 0, -3, 8, 5, -1, 10], 5); // if -1 means not found
console.log('bubbleSort', indexOfSearchResult);

Typescript / Angular:

import linearSearch from '@jsundefined/algojs/search/linear';
let indexOfSearchResult = linearSearch([ -5, -10, 0, -3, 8, 5, -1, 10], 5); // if -1 means not found
console.log('bubbleSort', indexOfSearchResult);

Collection

  • Queue
  • Deque
  • Linked List
  • Stack

How to use collection classes:

Javascript:

let LinkedList = require('@jsundefined/algojs/collections/linked-list/LinkedList.js');
let ll = new LinkedList();
ll.insertAtBeginning(11);
ll.add(4);
ll.add(12);
ll.add(91);
ll.add(21);
ll.add(88);
ll.add(27);
ll.add(45);
ll.add(77);
ll.insertAtEnd(34);
ll.deleteNodeAt(1);
ll.deleteNode(34);
ll.deleteFirstNode();
ll.deleteLastNode();
ll.insertAt(8,3);
ll.reverse();
let curr = ll.swap(2,5);
console.log(JSON.stringify(curr));
console.log(JSON.stringify(ll.sort()));

Typescript / Angular:

import LinkedList from '@jsundefined/algojs/collections/linked-list/LinkedList';
let ll = new LinkedList();
ll.insertAtBeginning(11);
ll.add(4);
ll.add(12);
ll.add(91);
ll.add(21);
ll.add(88);
ll.add(27);
ll.add(45);
ll.add(77);
ll.insertAtEnd(34);
ll.deleteNodeAt(1);
ll.deleteNode(34);
ll.deleteFirstNode();
ll.deleteLastNode();
ll.insertAt(8,3);
ll.reverse();
let curr = ll.swap(2,5);
console.log(JSON.stringify(curr));
console.log(JSON.stringify(ll.sort()));

Single Linked List:

Methods Uses Paramaters Return
add inserting at end of linked list one parameter, data to be added full list
insertAtEnd inserting data at end of linked list one parameter, data to be added full list
insertAtStart inserting data at start of linked list one parameter, data to be added full list
insertAt inserting data at particular index of linked list 2 parameters, (data to be added, index) full list
deleteNodeAt deleting data at particular index of linked list 1 parameter, index deleted node
deleteNode deleting data of linked list 1 parameter, data full list
deleteFirstNode deleting first node of linked list no parameters full list
deleteLastNode deleting last data of linked list no parameters full list
indexOf indexOf a particular data in linked list 1 parameter, data index else -1
search index of a particular data in linked list 1 parameter, data index else false
getDataAt getting data of a node at particular index of linked list 1 parameter, index data else null
getNodeAt getting node at particular index of linked list 1 parameter, index data else null
clear clears full linked list no parameters true
isEmpty checks linked list is empty or not no parameters true or false
length get length of a linked list no parameters length
reverse reverse the linked list no parameters full list
swap swap two nodes the linked list 2 parameters, 2 nodes index full list
toArray creates array from linked list no parameters array
fromArray creates linked list from array no parameters linked list
sort sorts linked list no parameters linked list

Doubly Linked List:

Methods Uses Paramaters Return
add inserting at end of linked list one parameter, data to be added full list
insertAt inserting data at particular index of linked list 2 parameters, (data to be added, index) full list
deleteNodeAt deleting data at particular index of linked list 1 parameter, index deleted node
deleteNode deleting data of linked list 1 parameter, data full list
deleteFirstNode deleting first node of linked list no parameters full list
deleteLastNode deleting last data of linked list no parameters full list
search index of a particular data in linked list 1 parameter, data index else false
getDataAt getting data of a node at particular index of linked list 1 parameter, index data else null
getNodeAt getting node at particular index of linked list 1 parameter, index data else null
clear clears full linked list no parameters true
isEmpty checks linked list is empty or not no parameters true or false
length get length of a linked list no parameters length
reverse reverse the linked list no parameters full list
swap swap two nodes the linked list 2 parameters, 2 nodes index full list
toArray creates array from linked list no parameters array
fromArray creates linked list from array no parameters linked list
sort sorts linked list no parameters linked list

Stack:

Methods Uses Paramaters Return
push push data into stack one parameter, data full data
pop pop from stack no parameters data or false
peek peeks from stack no parameters data or null
clear clears full stack no parameters true
isEmpty checks stack is empty or not no parameters true or false
length get length of a stack no parameters length
reverse reverse the stack no parameters full stack
search index of a particular data in stack 1 parameter, data index else false
sort sorts stack no parameters stack

Queue:

Methods Uses Paramaters Return
enqueue push data into queue one parameter, data full data
dequeue pop from queue no parameters data or false
peek peeks from queue no parameters data or null
isEmpty checks queue is empty or not no parameters true or false
length get length of a queue no parameters length
sort sorts queue no parameters queue

Deque:

Methods Uses Paramaters Return
add or offer add data into queue one parameter, data full list
addFirst or offerFirst add first postion of queue one parameter, data full list
addLast or offerLast add end of queue one parameter, data full list
removeFirst removes from first no parameters full list
removeLast removes from last no parameters full list

Package Sidebar

Install

npm i @jsundefined/algojs

Weekly Downloads

6

Version

1.2.0

License

MIT

Unpacked Size

80.6 kB

Total Files

44

Last publish

Collaborators

  • raynirmalya