This repo is a C# library with implemented sorting alrogithms, structures and its algorithms.
SortingAlgorithms:
- Stable, generic:
- Unstable, generic:
- Non-comparison based algorithms:
- Bucket sort - implemented for integer
- Couting sort (stable) - implemented for integer
- Couting sort (unstable) - implemented for integer
- LSD Radix - implemented for integer
- MSD Radix - implemented for strings
Data stuctures:
- Hash tables
- Implementations
- Algorithms
- Add
- Contains
- Remove
- Clear
- Binary search tree
- Insert
- Find
- Remove
- Traverse
- Verify
- GetMin
- GetMax
- GetPredecessor
- GetSuccessor
- GetKElementInOrder
- SplitByKey
- Merge (with tree where keys > than keys in this tree)
- RotateLeft
- RotateRight
- GetCommonRoot(key1, key2)
- GetDistance(key1, key2)
- Binary search tree node
- AVL tree
- AVL tree node
This library has generic tests for each sorter. New added sorter is testing automatically using Reflection. Currently it tests next types of array:
- Integer
- Double
- String
- Char
Each type tested on next inputs:
- Sorted sequense
- Reverted sorted sequense
- Random shuffled sequense
- Empty array
Each implemented data structures has tests which covering as much as possible.