Collection of different algorithms.
Below there are short descriptions of algorithms and links to them in repository.
- insertion-sort - Insertion sort, simple sorting algorithm.
- merge-sort - Merge sort, O(n log n) comparison-based sorting algorithm.
- quick-sort - Quick sort, efficient sorting algorithm.
- randomized-quick-sort - Randomized Quick sort, based on regular quick sort but give chance to handle bad cases (like sorted and reverse sorted array).
- counting-sort - Counting sort, fast sort for small integers.
- radix-sort - Radix sort, fast sorting algorithms for integer numbers. Digit sort based on counting sort, fast sorting algorithm for small integers.
- max-heap - tree-based data structure, stored in array.
- priority-queue - queue with priorities (priority queue), based on max heap.
- binary-tree - binary search tree without self-balancing.
- BFS - Breadth-First Search, algorithm for traversing or searching graph data structures.
- shortest-path-search - Shortest Path Search based on BFS algorithm.
- find-connected-components - algorithm to find all components in graph, based on BFS.
- DFSR - Recursive Depth-First Search, recursive realization of algorithm for traversing or searching graph data structures. This algorithm is alternative to BFS.
- DFS - Depth-First Search, iterational realization of algorithm for traversing or searching graph data structures. This algorithm is alternative to BFS and realized very similar to it unlike DFSR realization.
- topological-sort - Topological Sort, linear ordering of directed graph's vertices. This realization uses DFSR.
- strong-connected-components - algorithm to find all components in directed graph. This realization uses DFSR.
- karatsuba_multiply - recursive realization of fast multiplication algorithm (the Karatsuba algorithm).
- count-inversions - algorithm to count inversions in array, based on merge sort.