# Sorting and data structure algorithms

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

### Tests

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.

# Algorithms

## Popular algorithms on C#, data structures and solutions for Cracking the Code Interview

### Algorithms Info

⭐ Stars 16

🔗 Source Code github.com

🕒 Last Update 2 years ago

🕒 Created 5 years ago

🐞 Open Issues 0

➗ Star-Issue Ratio Infinity

😎 Author Silvochka