<commit_before>**No Pull Requests Please!** Just my personal hobby, You are free to fork and play.
Bugs are welcome!

# Advanced Algorithms

Various important computer science algorithms implemented in C#

##Data Structures
### List
* [Array List](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/List/AsArrayList.cs) (dynamic array)
* [Skip List](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/List/AsSkipList.cs)

### Hash Dictionaries
* [Hash Set](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/HashSet/AsHashSet.cs) using [Separate Chaining](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/HashSet/AsSeparateChainingHashSet.cs) optionally [Open Address Linear Probing](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/HashSet/AsOpenAddressHashSet.cs)
* [Tree HashSet](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/HashSet/AsTreeHashSet.cs)

### Stack
* [Stack](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Stack/AsStack.cs)

### Queue
* [Queue](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Queue/AsQueue.cs)

#### Priority Queue
* [Min Priority Queue](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Queue/PriorityQueue/Min/AsPriorityQueue.cs)
 
###Linked List
* [Singly linked list](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/LinkedList/AsSinglyLinkedList.cs)
* [Doubly linked list](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/LinkedList/AsDoublyLinkedList.cs)
* [Circular linked list](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/LinkedList/AsCircularLinkedList.cs)

###Heap

####Min
* [Binary Min Heap](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Heap/Min/AsBMinHeap.cs)
* [d-ary Min Heap](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Heap/Min/Asd-aryMinHeap.cs)
* [Binomial Min Heap](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Heap/Min/AsBinomialMinHeap.cs)
* [Fibornacci Min Heap](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Heap/Min/AsFibornacciMinHeap.cs)
* [Pairing Min Heap](https://github.com/justcoding121/Advanced-Algorithms/blob/master/Algorithm.Sandbox/DataStructures/Heap/Min/AsPairingMinHeap.cs)

### Tree
* [Tree](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Tree/AsTree.cs)
* [AVL Tree](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Tree/AsAvlTree.cs)
* [Red Black Tree](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Tree/AsRedBlackTree.cs)
* [Binary Tree](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Tree/AsBinaryTree.cs)
* [Binary Search Tree](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Tree/AsBST.cs)
* [Splay Tree](https://github.com/justcoding121/Advanced-Algorithms/blob/master/Algorithm.Sandbox/DataStructures/Tree/AsSplayTree.cs)
* Treap Tree
* B Tree
* B+ Tree
* Interval Tree
* Range Tree
* Binary Indexed Tree (Fenwick tree)
* Segment Tree
* Trie
* Suffix Tree
* Ternary Search Tree
* K-D Tree
* Decision Tree

### Graph

#### Adjacency List
* [DiGraph](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Graph/AdjacencyList/AsDiGraph.cs)
* [Graph](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Graph/AdjacencyList/AsGraph.cs)
* [Weighted DiGraph](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Graph/AdjacencyList/AsWeightedDiGraph.cs)
* [Weighted Graph](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Graph/AdjacencyList/AsWeightedGraph.cs)

#### Adjacency Matrix
* DiGraph
* Graph
* Weighted DiGraph
* Weighted Graph

#Algorithms

##Dynamic Programming

* [Coin Change Problem](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DynamicProgramming/CoinChangeProblems.cs)
* [Tower Of Hanoi](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DynamicProgramming/TowerOfHanoi.cs)
* [Knapsack problem](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DynamicProgramming/KnackSackProblems.cs)
* Fibonacci Number Generator
* Balanced Partition
* Count Bool Parenthesization
* Count Decoding
* Dice Throw
* Distinct Binary Strings
* Longest Common Sub Sequence
* Longest Increasing Sub Sequence
* Longest Palindrome
* Matrix Multiplication
* Maximum Sub Matrix
* Maximum Value Sub Sequence
* Min Edit Distance
* Min Array Jumps
* Optimal Game Strategy
* Palindrome Min Cut
* Print Max As
* Shortest Palindrome
* Sub Set Sum
* Text Justification
* Two Person City Traversal
* Unique Binary Search Tree
* Word Break problem


##Geometry

* Closest point pair
* Convex Hull
* K-Means clustering
* Line Clipping
* Rotation
* Translation
* Scale
* Euclidian plane

##Graph Algorithms

###Coloring

* M-Coloring

###Connectivity

* Eulerian Path

###Cover

* Min Vertex Cover

###Flow

* Maximum Flow
* Minimum Flow

###Matching

* Bipartite Matching

###Minimum Spanning Tree

* Kruskals
* Prims

###Search

* Bi-Directional
* Breadth First
* Depth First
* A* Search

###Sorting

* Topological Sort

###Shortest Path

* Bellman-Ford algorithm
* Dijikstras algorithm
* Floyd-Warshall algorithm
* Johnsons algorithm

##Sorting

* [Quick Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/QuickSort.cs)
* [Heap Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/HeapSort.cs)
* [Tree Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/TreeSort.cs)
* [Bubble Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/BubbleSort.cs)
* [Insertion Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/InsertionSort.cs)
* [Merge Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/MergeSort.cs)
* [Selection Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/SelectionSort.cs)
* Radix Sort
* Shell Sort
* Bucket Sort
* Counting Sort

##String

* [SubSets](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/String/SubSets.cs)
* Permutation
* Rabin-Karp sub string search

##Compression
* Huffman Coding

##Numerical Methods

* Check Primality
* Generate Primes
* Greatest Common Divisor
* Least Common Multiplier
* Fast Exponentiation
* Discrete Fourier Transform
* Median
* Mode
* Matrix multiplication
* Matrix Addition
* Matrix Subtraction
* Matrix division
* Matrix determinant
* Fast Multiplication
* Shuffling
* Interpolation
* Fast Division
* Curve Fitting 
 

##Bit algorithms

* Base Conversion
* Clear Bit
* Update Bit
* Get Bit
* Set Bit
* Shift and Add Multiplication

##Probability and Statistics

* Random Number Generation 




<commit_msg>add treap tree to list<commit_after>**No Pull Requests Please!** Just my personal hobby, You are free to fork and play.
Bugs are welcome!

# Advanced Algorithms

Various important computer science algorithms implemented in C#

##Data Structures
### List
* [Array List](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/List/AsArrayList.cs) (dynamic array)
* [Skip List](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/List/AsSkipList.cs)

### Hash Dictionaries
* [Hash Set](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/HashSet/AsHashSet.cs) using [Separate Chaining](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/HashSet/AsSeparateChainingHashSet.cs) optionally [Open Address Linear Probing](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/HashSet/AsOpenAddressHashSet.cs)
* [Tree HashSet](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/HashSet/AsTreeHashSet.cs)

### Stack
* [Stack](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Stack/AsStack.cs)

### Queue
* [Queue](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Queue/AsQueue.cs)

#### Priority Queue
* [Min Priority Queue](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Queue/PriorityQueue/Min/AsPriorityQueue.cs)
 
###Linked List
* [Singly linked list](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/LinkedList/AsSinglyLinkedList.cs)
* [Doubly linked list](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/LinkedList/AsDoublyLinkedList.cs)
* [Circular linked list](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/LinkedList/AsCircularLinkedList.cs)

###Heap

####Min
* [Binary Min Heap](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Heap/Min/AsBMinHeap.cs)
* [d-ary Min Heap](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Heap/Min/Asd-aryMinHeap.cs)
* [Binomial Min Heap](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Heap/Min/AsBinomialMinHeap.cs)
* [Fibornacci Min Heap](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Heap/Min/AsFibornacciMinHeap.cs)
* [Pairing Min Heap](https://github.com/justcoding121/Advanced-Algorithms/blob/master/Algorithm.Sandbox/DataStructures/Heap/Min/AsPairingMinHeap.cs)

### Tree
* [Tree](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Tree/AsTree.cs)
* [AVL Tree](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Tree/AsAvlTree.cs)
* [Red Black Tree](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Tree/AsRedBlackTree.cs)
* [Binary Tree](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Tree/AsBinaryTree.cs)
* [Binary Search Tree](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Tree/AsBST.cs)
* [Splay Tree](https://github.com/justcoding121/Advanced-Algorithms/blob/master/Algorithm.Sandbox/DataStructures/Tree/AsSplayTree.cs)
* [Treap Tree](https://github.com/justcoding121/Advanced-Algorithms/blob/master/Algorithm.Sandbox/DataStructures/Tree/AsTreapTree.cs)
* B Tree
* B+ Tree
* Interval Tree
* Range Tree
* Binary Indexed Tree (Fenwick tree)
* Segment Tree
* Trie
* Suffix Tree
* Ternary Search Tree
* K-D Tree
* Decision Tree

### Graph

#### Adjacency List
* [DiGraph](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Graph/AdjacencyList/AsDiGraph.cs)
* [Graph](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Graph/AdjacencyList/AsGraph.cs)
* [Weighted DiGraph](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Graph/AdjacencyList/AsWeightedDiGraph.cs)
* [Weighted Graph](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DataStructures/Graph/AdjacencyList/AsWeightedGraph.cs)

#### Adjacency Matrix
* DiGraph
* Graph
* Weighted DiGraph
* Weighted Graph

#Algorithms

##Dynamic Programming

* [Coin Change Problem](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DynamicProgramming/CoinChangeProblems.cs)
* [Tower Of Hanoi](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DynamicProgramming/TowerOfHanoi.cs)
* [Knapsack problem](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/DynamicProgramming/KnackSackProblems.cs)
* Fibonacci Number Generator
* Balanced Partition
* Count Bool Parenthesization
* Count Decoding
* Dice Throw
* Distinct Binary Strings
* Longest Common Sub Sequence
* Longest Increasing Sub Sequence
* Longest Palindrome
* Matrix Multiplication
* Maximum Sub Matrix
* Maximum Value Sub Sequence
* Min Edit Distance
* Min Array Jumps
* Optimal Game Strategy
* Palindrome Min Cut
* Print Max As
* Shortest Palindrome
* Sub Set Sum
* Text Justification
* Two Person City Traversal
* Unique Binary Search Tree
* Word Break problem


##Geometry

* Closest point pair
* Convex Hull
* K-Means clustering
* Line Clipping
* Rotation
* Translation
* Scale
* Euclidian plane

##Graph Algorithms

###Coloring

* M-Coloring

###Connectivity

* Eulerian Path

###Cover

* Min Vertex Cover

###Flow

* Maximum Flow
* Minimum Flow

###Matching

* Bipartite Matching

###Minimum Spanning Tree

* Kruskals
* Prims

###Search

* Bi-Directional
* Breadth First
* Depth First
* A* Search

###Sorting

* Topological Sort

###Shortest Path

* Bellman-Ford algorithm
* Dijikstras algorithm
* Floyd-Warshall algorithm
* Johnsons algorithm

##Sorting

* [Quick Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/QuickSort.cs)
* [Heap Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/HeapSort.cs)
* [Tree Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/TreeSort.cs)
* [Bubble Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/BubbleSort.cs)
* [Insertion Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/InsertionSort.cs)
* [Merge Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/MergeSort.cs)
* [Selection Sort](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/Sorting/SelectionSort.cs)
* Radix Sort
* Shell Sort
* Bucket Sort
* Counting Sort

##String

* [SubSets](https://github.com/justcoding121/Algorithm-Sandbox/blob/master/Algorithm.Sandbox/String/SubSets.cs)
* Permutation
* Rabin-Karp sub string search

##Compression
* Huffman Coding

##Numerical Methods

* Check Primality
* Generate Primes
* Greatest Common Divisor
* Least Common Multiplier
* Fast Exponentiation
* Discrete Fourier Transform
* Median
* Mode
* Matrix multiplication
* Matrix Addition
* Matrix Subtraction
* Matrix division
* Matrix determinant
* Fast Multiplication
* Shuffling
* Interpolation
* Fast Division
* Curve Fitting 
 

##Bit algorithms

* Base Conversion
* Clear Bit
* Update Bit
* Get Bit
* Set Bit
* Shift and Add Multiplication

##Probability and Statistics

* Random Number Generation 





{'fraction_non_alphanumeric': 0.1254482581967213, 'fraction_numerical': 0.014792520491803279, 'mean_word_length': 5.9193619849357555, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 77, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2783578', 'n_tokens_mistral': 5452, 'n_tokens_neox': 4939, 'n_words': 756}