typescript-algorithms icon indicating copy to clipboard operation
typescript-algorithms copied to clipboard

🔖 Algorithms and data structures implemented in TypeScript

trafficstars

TypeScript Algorithms and Data structures

CI

🔖 Algorithms and data structures implemented in TypeScript.

Data structures

A data structure is a data organization, management, and storage format that enables efficient access and modification. More precisely, a data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data.

  • Queue - a data structure to follow the FIFO principle;
  • Graph - a set of vertices and edges;
  • Stack - a data structure to follow the LIFO principle;
  • Linked list - a data structure to follow the FIFO principle;
  • Vector - is used to represent the mathematical vector used in linear algebra;
  • Hash table - is used for lookup, where keys are hashed;

Algorithms

An algorithm is a finite sequence of well-defined, computer-implementable instructions, typically to solve a class of problems or to perform a computation.

Algorithms by Topic

  • Search
    • Peak Finder (1d version) - find a peak in a one-dimensional array;
    • Peak Finder (2d version) - find a peak a two-dimensional array;
    • Binary search - find a position of the element in a sorted one-dimensional array;
  • String
    • Document distance - measure similarity between two strings;
    • Is unique - check a string for uniqueness;
    • Check permutation - check if a string is a permutation of the other;
    • URLify - replace all spaces in a string with '%20';
    • String compression - perform basic string compression using the counts of repeated characters;
    • Rotate matrix - rotate the matrix by 90 degrees;
  • Sort
    • Insertion sort - sort an array with a simple insertion algorithm;
    • Merge sort - sort an array with a merge sort algorithm;
    • Heapsort - sort an array with a heapsort algorithm;
    • Counting sort - sort an array with a counting sort algorithm;
    • Radix sort - sort an array with a radix sort algorithm;
  • Graph
    • Breadth-first search - traverse a graph, explore neighbor vertices first;
    • Depth-first search - traverse a graph, explore descendant vertices first;
    • Dijkstra - find the shortest path between two vertices in a graph, return a shortest-path tree;
    • Bellman-Ford - find the shortest path in a graph with negative edges, return a shortest-path tree;
    • Topological sort - an algorithm for topological sorting, which is based on depth-first search;

How to use this repository

Install all dependencies

npm install

Run all tests

npm test